Teilen ü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