Auf Englisch lesen

Freigeben über


Compileroptionen (alphabetisch sortiert)

Diese Tabelle enthält eine alphabetische Liste der Compileroptionen. Eine Liste der Compileroptionen nach Kategorie finden Sie in den nach Kategorieartikel aufgeführten Compileroptionen.

Compileroptionen

Option Zweck
@ Legt eine Antwortdatei fest.
/? Listet die Compileroptionen auf.
/AI<dir> Gibt ein Verzeichnis an, das durchsucht werden soll, um an die #using Direktive übergebene Dateiverweise aufzulösen.
/analyze Aktiviert die Codeanalyse.
/arch Mindestanforderungen an die CPU-Architektur.
/arm64EC Generieren Sie Code, der mit dem arm64EC ABI kompatibel ist.
/await Aktivieren Sie Coroutinenerweiterungen (resumable Functions).
/await:strict Aktivieren Sie die C++20-Standard-Coroutine-Unterstützung mit früheren Sprachversionen.
/bigobj Erhöht die Anzahl von adressierbaren Abschnitten in einer OBJ-Datei.
/C Behält Kommentare beim Präprozessorlauf bei
/c Kompiliert ohne Verknüpfen.
/cgthreads Gibt die Anzahl der cl.exe Threads an, die zur Optimierung und Codegenerierung verwendet werden sollen.
/clr Erzeugt eine Ausgabedatei, die auf der Common Language Runtime ausgeführt werden kann.
/clr:implicitKeepAlive- Deaktivieren Sie die implizite Emission von System::GC::KeepAlive(this).
/clr:initialAppDomain Aktivieren Sie das anfängliche AppDomain-Verhalten von Visual C++ 2002.
/clr:netcore Erstellen Sie Assemblys für .NET Core-Runtime.
/clr:noAssembly Erstellen Sie keine Assembly.
/clr:nostdimport Importieren Sie keine erforderlichen Assemblys implizit.
/clr:nostdlib Ignorieren Sie das Systemverzeichnis .NET Framework, wenn Sie nach Assemblys suchen.
/clr:pure Erstellen Sie eine NUR-IL-Ausgabedatei (kein systemeigener ausführbarer Code).
/clr:safe Erstellen Sie eine nur beprüfbare IL-Ausgabedatei.
/constexpr:backtrace<N> Anzeigen von N-Auswertungen constexpr in der Diagnose (Standard: 10).
/constexpr:depth<N> Rekursionstiefegrenzwert für constexpr die Auswertung (Standard: 512).
/constexpr:steps<N> Beenden der constexpr Auswertung nach N-Schritten (Standard: 100000)
/D<name>{=|#}<text> Definiert Konstanten und Makros.
/diagnostics Diagnoseformat: Druckt Spalteninformationen.
/diagnostics:caret[-] Diagnoseformat: Druckt die Spalte und die angegebene Quellzeile.
/diagnostics:classic Verwenden Sie das Legacydiagnoseformat.
/doc Verarbeitet Dokumentationskommentare zu einer XML-Datei.
/E Kopiert die Präprozessorausgabe in die Standardausgabe.
/EHa Aktivieren der C++-Ausnahmebehandlung (mit SEH-Ausnahmen).
/EHc extern "C" ist standardmäßig nothrow.
/EHr Generieren Sie noexcept immer Laufzeitendpunktüberprüfungen.
/EHs Aktivieren der C++-Ausnahmebehandlung (keine SEH-Ausnahmen).
/EP Kopiert die Präprozessorausgabe in die Standardausgabe.
/errorReport Veraltet. Windows-Fehlerberichterstattung (WER)-Einstellungen steuern Fehlerberichterstattung.
/execution-charset Festlegen des Ausführungszeichensatzes.
/experimental:log Ermöglicht experimentelle strukturierte SARIF-Ausgabe.
/experimental:module Ermöglicht die Unterstützung experimenteller Module.
/exportHeader Erstellen Sie die durch die Eingabeargumente angegebenen Headereinheitendateien (.ifc).
/external:anglebrackets Behandeln Sie alle Kopfzeilen, die als extern enthalten sind <> .
/external:env:<var> Geben Sie eine Umgebungsvariable mit Speicherorten externer Header an.
/external:I <path> Geben Sie den Speicherort externer Header an.
/external:templates[-] Auswerten der Warnstufe über die Vorlageninstanzenkette hinweg.
/external:W<n> Festlegen der Warnstufe für externe Header.
/F Legt die Stapelgröße fest.
/FA Konfiguriert eine Assemblylistendatei.
/Fa Erstellt eine Assemblylistendatei.
/fastfail Aktivieren Sie den Schnellfehlermodus.
/favor:<blend|AMD64|INTEL64|ATOM> Erzeugt Code, der für eine bestimmte Architektur optimiert wird, oder für einen Bereich von Architekturen.
/FC Zeigt den vollständigen Pfad von Quellcodedateien an, die an cl.exe im Diagnosetext übergeben werden.
/Fd Benennt die Programmdatenbankdatei um.
/Fe Benennt die ausführbare Datei um.
/feature Aktivieren Sie Architekturfeatures.17.10
/FI<file> Führt eine Vorverarbeitung der angegebenen Includedatei durch.
/Fi Gibt den Namen der vorverarbeiteten Ausgabedatei an.
/Fm Erstellt eine Zuordnungsdatei.
/Fo Erstellt eine Objektdatei.
/Fp Gibt den Namen einer vorkompilierten Headerdatei an.
/fp:contract Erwägen Sie Gleitkommakontraktionen beim Generieren von Code.
/fp:except[-] Berücksichtigen Sie Gleitkomma-Ausnahmen beim Generieren von Code.
/fp:fast "schnelles" Gleitkommamodell; Ergebnisse sind weniger vorhersehbar.
/fp:precise "präzises" Gleitkommamodell; Ergebnisse sind vorhersagbar.
/fp:strict "strict" Gleitkommamodell (impliziert /fp:except).
/fpcvt:BC Abwärtskompatible Gleitkommazahlen zu nicht signierten ganzzahligen Konvertierungen.
/fpcvt:IA Intel Native Gleitkomma zum Verhalten der nicht signierten ganzzahligen Konvertierung.
/FR, /Fr Name generierter .sbr Browserdateien. /Fr ist veraltet.
/FS Erzwingt Schreibvorgänge in die PDB-Datei, um über MSPDBSRV.EXE serialisiert zu werden.
/fsanitize Ermöglicht die Kompilierung von Bereinigungsinstrumentation wie AddressSanitizer.
/fsanitize-coverage Ermöglicht die Kompilierung der Codeabdeckungsinstrumentation für Bibliotheken wie LibFuzzer.
/Ft<dir> Speicherort der für #import.
/FU<file> Erzwingt die Verwendung eines Dateinamens, als ob er an die #using Richtlinie übergeben wurde.
/Fx Führt eingefügten Code mit der Quelldatei zusammen.
/GA Optimiert Windows-Anwendungen.
/Gd Verwendet die __cdecl -Aufrufkonvention. (nur x86)
/Ge Veraltet. Aktiviert Stapelüberprüfungen.
/GF Aktiviert Stringpooling.
/GH Ruft die Hookfunktion _pexitauf.
/Gh Ruft die Hookfunktion _penterauf.
/GL[-] Aktiviert die Optimierung des gesamten Programms.
/Gm[-] Veraltet. Aktiviert minimale Neuerstellung.
/GR[-] Aktiviert Laufzeit-Typeninformation (RTTI).
/Gr Verwendet die __fastcall -Aufrufkonvention. (nur x86)
/GS[-] Überprüft die Puffersicherheit.
/Gs[n] Steuert Stapelüberprüfungen
/GT Unterstützt Fiber-Sicherheit für Daten, die mit statischem lokalen Threadspeicher zugewiesen werden.
/Gu[-] Stellen Sie sicher, dass unterschiedliche Funktionen über unterschiedliche Adressen verfügen.
/guard:cf[-] Fügt Sicherheitsüberprüfungen zum Ablaufsteuerungsschutz hinzu.
/guard:ehcont[-] Aktiviert EH-Fortsetzungsmetadaten.
/Gv Verwendet die __vectorcall -Aufrufkonvention. (nur x86 und x64)
/Gw[-] Ermöglicht programmübergreifende globale Datenoptimierung.
/GX[-] Veraltet. Aktiviert synchrone Ausnahmebehandlung. Verwenden Sie stattdessen /EH.
/Gy[-] Aktiviert Funktionslevel-Linking.
/GZ Veraltet. Ermöglicht schnelle Überprüfungen. (Identisch mit /RTC1)
/Gz Verwendet die __stdcall -Aufrufkonvention. (nur x86)
/H Veraltet. Beschränkt die Länge externer (öffentlicher) Namen.
/headerName Erstellen Sie eine Kopfzeileneinheit aus der angegebenen Kopfzeile.
/headerUnit Geben Sie an, wo die Kopfzeileneinheitsdatei (.ifc) für den angegebenen Header gefunden werden soll.
/HELP Listet die Compileroptionen auf.
/homeparams Erzwingt, dass in Registern übergebene Parameter beim Funktionseinstieg in ihre Speicherorte auf dem Stapel geschrieben werden. Diese Compileroption gilt nur für die x64-Compiler (systemeigene und cross compile).
/hotpatch Erstellt ein Hotpatch-fähiges Abbild.
/I<dir> Sucht in einem Verzeichnis nach Includedateien.
/ifcOutput Geben Sie den Ausgabedateinamen oder das Verzeichnis für erstellte .ifc Dateien an.
/interface Behandeln Sie die Eingabedatei als Modulschnittstelleneinheit.
/internalPartition Behandeln Sie die Eingabedatei als interne Partitionseinheit.
/J Ändert den char -Standardtyp.
/jumptablerdata Platzieren Sie Sprungtabellen für switch case statement im .rdata Abschnitt.
/JMC Unterstützt systemeigenes C++ Just My Code Debugging.
/kernel Der Compiler und der Linker erstellen eine Binärdatei, die im Windows-Kernel ausgeführt werden kann.
/LD Erstellt eine Dynamic Link Library (DLL).
/LDd Erstellt eine Debug-Dynamic Link Library.
/link Übergibt die angegebene Option an LINK.
/LN Erstellt ein MSIL .netmodule.
/MD Kompiliert, um eine Multithread-DLL mithilfe von MSVCRT.lib zu erstellen.
/MDd Kompiliert, um eine Debug-Multithread-DLL mithilfe von MSVCRTD.lib zu erstellen.
/MP Erstellt mehrere Quelldateien gleichzeitig.
/MT Kompiliert, um eine multithreadierte ausführbare Datei mithilfe von LIBCMT.lib zu erstellen.
/MTd Kompiliert, um eine debug-Multithread-ausführbare Datei mithilfe von LIBCMTD.lib zu erstellen.
/nologo Unterdrückt die Anzeige von Startinformationen.
/O1 Erstellt kompakten Code.
/O2 Erstellt schnellen Code.
/Ob<n> Steuert Inline-Erweiterung.
/Od Deaktiviert Optimierung.
/Og Veraltet. Verwendet globale Optimierung.
/Oi[-] Erstellt systeminterne Funktionen.
/openmp Aktiviert #pragma omp im Quellcode.
/openmp:experimental Aktivieren Sie OpenMP 2.0-Spracherweiterungen, und wählen Sie "OpenMP 3.0+ Spracherweiterungen" aus.
/openmp:llvm OpenMP-Spracherweiterungen mit LLVM-Laufzeit.
/options:strict Nicht erkannte Compileroptionen sind Fehler.
/Os Bevorzugt kompakten Code.
/Ot Bevorzugt schnellen Code.
/Ox Eine Teilmenge von /O2, die nicht /GF oder /Gy enthält.
/Oy Unterdrückt Framezeiger. (nur x86)
/P Schreibt Präprozessorausgaben in eine Datei.
/PD Alle Makrodefinitionen drucken.
/permissive[-] Legen Sie den Standardkonformitätsmodus fest.
/PH Generieren #pragma file_hash Sie bei der Vorverarbeitung.
/presetPadding Zero initialize padding for stack based class types.
/Qfast_transcendentals Generiert schnelle Transzendente.
/QIfist Veraltet. Unterdrückt den Aufruf der _ftol -Hilfsfunktion, wenn eine Konvertierung von einem Gleitkommatyp zu einem ganzzahligen Typ erforderlich ist. (nur x86)
/Qimprecise_fwaits Entfernt fwait -Befehle in try -Blöcken.
/QIntel-jcc-erratum Verringert die Leistungsauswirkungen des Intel JCC-Mikrocodeupdates.
/Qpar-report:<n> Aktiviert die Berichterstellungsebenen für die automatische Parallelisierung.
/Qpar Ermöglicht automatische Parallelisierung von Schleifen.
/Qsafe_fp_loads Verwendet ganzzahlige Verschiebungsanweisungen für Gleitkommawerte und deaktiviert bestimmte Gleitkomma-Ladeoptimierungen.
/Qspectre[-] Aktivieren Sie Entschärfungen für CVE 2017-5753 für eine Klasse von Spectre-Angriffen.
/Qspectre-load Generieren Sie Serialisierungsanweisungen für jede Ladeanweisung.
/Qspectre-load-cf Generieren Sie Serialisierungsanweisungen für jede Steuerungsflussanweisung, die Arbeitsspeicher lädt.
/Qvec-report:<n> Aktiviert die Berichterstellungsebenen für die automatische Vektorisierung.
/reference Verwenden Sie das benannte Modul IFC.
/RTC1 Schnelle Laufzeitüberprüfungen aktivieren (entspricht /RTCsu).
/RTCc Konvertieren sie zur Laufzeit in kleinere Typüberprüfungen.
/RTCs Aktivieren Sie Stapelframe-Laufzeitüberprüfungen.
/RTCu Aktiviert nicht initialisierte lokale Verwendungsprüfungen.
/scanDependencies Listenmodulabhängigkeiten im C++-Standard-JSON-Formular.
/sdl Aktivieren Sie weitere Sicherheitsfeatures und -warnungen.
/showIncludes Zeigt während der Kompilierung eine Liste aller Includedateien an.
/source-charset Festlegen des Quellzeichensatzes.
/sourceDependencies Listet alle Abhängigkeiten auf Quellebene auf.
/sourceDependencies:directives Listenmodul- und Kopfzeileneinheitsabhängigkeiten.
/std:c++14 C++14 Standard ISO/IEC 14882:2014 (Standard).
/std:c++17 C++17 Standard ISO/IEC 14882:2017.
/std:c++20 C++20 Standard ISO/IEC 14882:2020.
/std:c++latest Die neuesten C++-Standardvorschaufeatures.
/std:c11 C11-Standard ISO/IEC 9899:2011.
/std:c17 C17-Standard ISO/IEC 9899:2018.
/std:clatest Die neuesten C-Standardvorschaufeatures.
/TC Gibt an, dass alle Quelldateien C sind.
/Tc Gibt eine C-Quelldatei an.
/TP Gibt an, dass alle Quelldateien C++ sind.
/Tp Gibt eine C++-Quelldatei an.
/translateInclude Behandeln #include als import.
/U<name> Entfernt ein vorkompiliertes Makro.
/u Entfernt alle vorkompilierten Makros.
/utf-8 Festlegen von Quell- und Ausführungszeichensätzen auf UTF-8.
/V Veraltet. Legt die Versionszeichenfolge fest.
/validate-charset Überprüfen Sie UTF-8-Dateien nur für kompatible Zeichen.
/vd{0|1|2} Unterdrückt oder aktiviert ausgeblendete vtordisp -Klassenmember.
/vlen Gibt die Länge des Vektors an.
/vmb Verwendet bestmögliche Basis für Zeiger auf Member.
/vmg Verwendet volle Allgemeingültigkeit für Zeiger auf Member.
/vmm Deklariert mehrfache Vererbung.
/vms Deklariert einfache Vererbung.
/vmv Deklariert virtuelle Vererbung.
/volatile:iso Abrufen/Freigeben-Semantik für veränderliche Zugriffe nicht garantiert.
/volatile:ms Erwerben/Freigeben-Semantik, die für veränderliche Zugriffe garantiert ist.
/volatileMetadata Generieren Sie Metadaten für veränderliche Speicherzugriffe.
/w Alle Warnungen deaktivieren.
/W0, , /W1/W2, , /W3/W4 Legen Sie die Ausgabewarnungsstufe fest.
/w1<n>, , /w2<n>/w3<n>/w4<n> Legen Sie die Warnstufe für die angegebene Warnung fest.
/Wall Aktivieren Sie alle Warnungen, einschließlich Warnungen, die standardmäßig deaktiviert sind.
/wd<n> Deaktivieren Sie die angegebene Warnung.
/we<n> Behandeln Sie die angegebene Warnung als Fehler.
/WL Aktivieren Sie die einzeilige Diagnose für Fehler- und Warnmeldungen beim Kompilieren von C++-Quellcode über die Befehlszeile.
/wo<n> Zeigt die angegebene Warnung nur einmal an.
/Wv:xx[.yy[.zzzzz]] Deaktivieren Sie Warnungen, die nach der angegebenen Version des Compilers eingeführt wurden.
/WX Warnungen als Fehler behandeln.
/X Ignoriert das standardmäßige Includeverzeichnis.
/Y- Ignoriert alle anderen Optionen für vorkompilierte Header im aktuellen Erstellungsprozess.
/Yc Datei erstellen .PCH .
/Yd Veraltet. Legt vollständige Debuginformationen in allen Objektdateien ab. Verwenden Sie stattdessen /Zi.
/Yl Fügt beim Erstellen einer Debugbibliothek einen PCH-Verweis ein.
/Yu Verwendet eine vorkompilierte Headerdatei beim Erstellungsvorgang.
/Z7 Generiert C 7.0-kompatible Debuginformationen.
/Za Deaktiviert einige C89-Spracherweiterungen im C-Code.
/Zc:__cplusplus[-] Aktivieren Sie das __cplusplus Makro, um den unterstützten Standard zu melden (standardmäßig deaktiviert).
/Zc:__STDC__ Aktivieren Sie das Makro, um den __STDC__ C-Standard zu melden (standardmäßig deaktiviert).
/Zc:alignedNew[-] Aktivieren Sie die überbündige dynamische Zuordnung von C++17 (standardmäßig in C++17 aktiviert).
/Zc:auto[-] Erzwingen Sie die neue Standard-C++-Bedeutung für auto (standardmäßig aktiviert).
/Zc:char8_t[-] Aktivieren oder deaktivieren Sie die native u8 C++20-Literalunterstützung als const char8_t (standardmäßig deaktiviert, außer unter /std:c++20).
/Zc:enumTypes[-] Standard-C++-Regeln für enum Typabzug aktivieren (standardmäßig deaktiviert).
/Zc:externC[-] Erzwingen von Standard-C++-Regeln für extern "C" Funktionen (impliziert durch /permissive-).
/Zc:externConstexpr[-] Externe Verknüpfung für constexpr Variablen aktivieren (standardmäßig deaktiviert).
/Zc:forScope[-] Erzwingen von Standard-C++ for -Bereichsregeln (standardmäßig aktiviert).
/Zc:gotoScope Erzwingen von C++ goto -Standardregeln für die lokale Variableninitialisierung (impliziert durch /permissive-).
/Zc:hiddenFriend[-] Erzwingen von standardmäßigen C++-Regeln für ausgeblendete Freunde (impliziert durch /permissive-)
/Zc:implicitNoexcept[-] Implizit für noexcept erforderliche Funktionen aktivieren (standardmäßig aktiviert).
/Zc:inline[-] Entfernen Sie nicht referenzierte Funktionen oder Daten, wenn sie COMDAT sind oder nur über eine interne Verknüpfung verfügen (standardmäßig deaktiviert).
/Zc:lambda[-] Aktivieren Sie den neuen Lambda-Prozessor für syntaktische Überprüfungen im Konformitätsmodus in generischen Lambdas.
/Zc:noexceptTypes[-] Erzwingen Sie C++17-Regeln noexcept (standardmäßig in C++17 oder höher aktiviert).
/Zc:nrvo[-] Aktivieren Sie optionale Zeichenfolgen zum Kopieren und Verschieben (standardmäßig unter /O2, /permissive-oder /std:c++20 höher).
/Zc:preprocessor[-] Verwenden Sie den neuen konformen Präprozessor (standardmäßig deaktiviert, außer in C11/C17).
/Zc:referenceBinding[-] Eine temporäre UDT-Bindung wird nicht an einen Nichtkonst-Lvalue-Verweis (standardmäßig deaktiviert) gebunden.
/Zc:rvalueCast[-] Erzwingen von expliziten C++-Standardtypkonvertierungsregeln (standardmäßig deaktiviert).
/Zc:sizedDealloc[-] Aktivieren Sie C++14 globale Deallocation-Funktionen (standardmäßig aktiviert).
/Zc:strictStrings[-] Deaktivieren Sie Zeichenfolgenliteral in char* oder wchar_t* Konvertierung (standardmäßig deaktiviert).
/Zc:templateScope[-] Erzwingen von Standard-C++-Vorlagenparameter-Schattenregeln (standardmäßig deaktiviert).
/Zc:ternary[-] Erzwingen von Regeln für bedingte Operatoren für Operandentypen (standardmäßig deaktiviert).
/Zc:threadSafeInit[-] Aktivieren Sie die threadsichere lokale statische Initialisierung (standardmäßig aktiviert).
/Zc:throwingNew[-] Gehen Sie davon aus, dass operator new Fehler ausgelöst werden (standardmäßig deaktiviert).
/Zc:tlsGuards[-] Generieren Sie Laufzeitüberprüfungen für die TLS-Variableninitialisierung (standardmäßig aktiviert).
/Zc:trigraphs Aktivieren Sie Trigraphen (veraltet, standardmäßig deaktiviert).
/Zc:twoPhase[-] Verwenden Sie das Nichtkonforming von Vorlagenanalyseverhalten (standardmäßig konform).
/Zc:wchar_t[-] wchar_t ist ein systemeigener Typ, kein Typedef (standardmäßig aktiviert).
/Zc:zeroSizeArrayNew[-] Call member new/delete for zero-size arrays of objects (on by default).
/Ze Veraltet. Aktiviert C89-Spracherweiterungen.
/Zf Verbessert die Zeit der PDB-Generierung in parallelen Builds.
/ZH:[MD5|SHA1|SHA_256] Gibt MD5, SHA-1 oder SHA-256 für Prüfsummen in Debuginformationen an.
/ZI Fügt Debuginformationen in eine Programmdatenbank ein, die mit Bearbeiten und Fortfahren kompatibel ist. (nur x86)
/Zi Erzeugt vollständige Debuginformationen.
/Zl Entfernt den Standardbibliotheksnamen aus der .obj Datei.
/Zm Legt die maximale Speicherbelegung für den vorkompilierten Header fest.
/Zo[-] Generieren Sie umfangreichere Debuginformationen für optimierten Code.
/Zp[n] Komprimiert Strukturmember.
/Zs Prüft nur die Syntax.
/ZW Erzeugt eine Ausgabedatei, die auf dem Windows-Runtime ausgeführt werden soll.

17.10 Diese Option ist ab Visual Studio 2022, Version 17.10, verfügbar.

Siehe auch

MSVC-Compileroptionen
Syntax für die MSVC-Compilerbefehlszeile