Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgenden Eigenschaftenseiten finden Sie unter Projekt>Eigenschaften>Konfigurationseigenschaften>C/C++:
Allgemeine C/C++-Eigenschaften
Zusätzliche Includeverzeichnisse
Gibt mindestens ein Verzeichnis an, das dem Include-Pfad hinzugefügt werden soll. Trennen Sie Verzeichnisse mit Semikolons (;), wenn mehrere Vorhanden sind. Legt die /I Compileroption (Zusätzliche Includeverzeichnisse) fest.
Zusätzliche #using-Verzeichnisse
Gibt ein oder mehrere Verzeichnisse an, die durchsucht werden sollen, um Namen, die an eine #using-Direktive übergeben werden, aufzulösen. Trennen Sie Verzeichnisse durch Semikolons (;), wenn Sie mehrere hinzufügen. Legt die /AI Compileroption fest.
Weitere BMI-Verzeichnisse
Gibt ein oder mehrere Verzeichnisse an, die durchsucht werden sollen, um Namen, die an eine import-Direktive übergeben werden, aufzulösen. Trennen Sie Verzeichnisse durch Semikolons (;), wenn Sie mehrere hinzufügen. Legt die /ifcSearchDir[path] Compileroption fest.
Zusätzliche Modulabhängigkeiten
Gibt ein oder mehrere Module an, die verwendet werden sollen, um Namen, die an eine import-Direktive übergeben werden, aufzulösen. Trennen Sie Verzeichnisse durch Semikolons (;), wenn Sie mehrere hinzufügen. Legt die /reference Compileroption fest.
Zusätzliche Kopfzeileneinheitsabhängigkeiten
Gibt eine oder mehrere Headereinheiten an, die verwendet werden sollen, um Namen, die an eine import-Headerdirektive übergeben werden, aufzulösen. Trennen Sie Verzeichnisse durch Semikolons (;), wenn Sie mehrere hinzufügen. Legt die /headerUnit Compileroption fest.
Scannen von Quellen für Modulabhängigkeiten
Wenn diese Eigenschaft auf "Ja" festgelegt ist, überprüft der Compiler nicht nur Modulschnittstellen- und Headereinheitsquellen, alle C++-Quellen, auf Abhängigkeiten von Modul- und Headereinheiten. Das Buildsystem erstellt das vollständige Abhängigkeitsdiagramm, wodurch sichergestellt wird, dass alle importierten Module und Headereinheiten erstellt werden, bevor die Dateien kompiliert werden, die von ihnen abhängig sind. Wenn Scan Sources for Module Dependencies und Translate Includes to Imports beide auf Ja festgelegt sind, wird jede Headerdatei, die in einer header-units.json-Datei im selben Verzeichnis wie die Headerdatei angegeben ist, in eine Header-Einheit kompiliert.
Dateien mit der Erweiterung .ixxund Dateien, die ihre Dateieigenschaften>C/C++>Advanced>Compile As auf Compile as C++ Header Unit (/exportHeader) festgelegt haben, werden immer gescannt.
Dateien mit der Erweiterung .ixx, und Dateien, die ihre Dateieigenschaften>C/C++>Compile As Eigenschaft auf Compile as C++ Header Unit (/exportHeader) festgelegt haben, werden immer gescannt.
Includes in Importe umwandeln
Wenn diese Eigenschaft auf "Ja" festgelegt ist, behandelt der Compiler eine #include Direktive als import Direktive, wenn bestimmte Bedingungen erfüllt sind: Die Headerdatei wird in einer header-units.json Datei im selben Verzeichnis angegeben, und eine kompilierte Kopfzeileneinheit (eine .ifc Datei) ist für die Headerdatei verfügbar. Andernfalls wird die Headerdatei als normal #include behandelt. Die header-units.json Datei wird verwendet, um Kopfzeileneinheiten für jede #include ohne Symbolduplizierung zu erstellen. Wenn Translate Includes to Imports und Scan Sources for Module Dependencies beide auf Ja gesetzt sind, findet der Compiler automatisch alle Headerdateien, die zu Headereinheiten kompiliert werden können. Diese Eigenschaft legt die /translateInclude Compileroption fest.
Debuginformationsformat
Gibt den Typ der Debuginformationen an, die vom Compiler generiert werden. Für diese Eigenschaft sind kompatible Linkereinstellungen erforderlich. **
Legt Compileroptionen /Z7, /Zi, /ZI (Debuginformationsformat) fest.
Optionen
-
None (
None) – Erzeugt keine Debuginformationen, sodass die Kompilierung möglicherweise schneller ist. -
C7-kompatible (
OldStyle) – Erzeugt Objektdateien, die vollständige symbolische Debuginformationen enthalten. Es wird keine PDB-Datei erstellt. -
Programmdatenbank (
ProgramDatabase) – Erzeugt eine Programmdatenbank (PDB), die Typinformationen und symbolische Debuginformationen für die Verwendung mit dem Debugger enthält. Die symbolischen Debuginformationen umfassen die Namen und Typen von Variablen und Funktionen sowie Zeilennummern. -
Programmdatenbank für Bearbeitung und Weiter (
EditAndContinue) – Erzeugt eine Programmdatenbank, wie zuvor beschrieben, in einem Format, das das Feature "Bearbeiten" und "Weiter" unterstützt.
Unterstützung des Nur-Meinen-Code-Debuggings
Fügt Unterstützungscode zum Aktivieren des Just My Code-Debuggings in dieser Kompilierungseinheit hinzu. Legt fest /JMC.
Unterstützen des dynamischen Debuggens von C++
(Vorschau) Legt das Compilerflagge /dynamicdeopt fest, um das dynamische Debuggen von C++ zu aktivieren. Setzen Sie nicht optimierte Haltepunkte, und führen Sie mit der bedarfsgesteuerten Funktionsdeoptimierung an beliebiger Stelle einen Schritt aus. Verwenden Sie diesen Modus zum Debuggen von optimiertem Code.
Unterstützung für die Common Language Runtime
Verwenden Sie den .NET-Laufzeitdienst. Dieser Schalter ist mit einigen anderen Schaltern nicht kompatibel. Weitere Informationen finden Sie in der Dokumentation zur /clr Familie der Schalter.
Optionen
- Keine Common Language RunTime-Unterstützung – keine Common Language Runtime-Unterstützung.
- Common Language RunTime Support – Erstellt Metadaten für Ihre Anwendung, die von anderen CLR-Anwendungen genutzt werden können. Ermöglicht Ihrer Anwendung auch die Nutzung von Typen und Daten in den Metadaten anderer CLR-Komponenten.
- Reine MSIL Common Language RunTime-Unterstützung - Erzeugt eine nur MSIL-Ausgabedatei ohne nativen ausführbaren Code, obwohl sie systemeigene Typen enthalten kann, die in MSIL kompiliert wurden.
- Sichere MSIL Common Language RunTime-Unterstützung – Erzeugt eine reine MSIL-Datei (kein nativer ausführbarer Code) und eine überprüfbare Ausgabedatei.
Verwenden Sie die Windows-Runtime-Erweiterung
Nutzen Sie die Spracherweiterungen für die Windows-Runtime. Legt fest /ZW.
Startbanner unterdrücken
Unterdrückt die Anzeige des Anmeldebanners beim Start des Compilers und die Anzeige von Informationsmeldungen während der Kompilierung.
Warnstufe
Wählen Sie aus, wie streng der Compiler bei Codefehlern sein soll. Legt fest /W0 - /W4.
Optionen
- Alle Warnungen deaktivieren – Stufe 0 deaktiviert alle Warnungen.
- Stufe 1 – Ebene 1 zeigt schwere Warnungen an. Ebene 1 ist die Standardwarnstufe in der Befehlszeile.
- Stufe 2 – Ebene 2 zeigt alle Warnungen der Ebene 1 und Warnungen an, die weniger schwerwiegend als Stufe 1 sind.
- Level3 – Ebene 3 zeigt alle Warnungen der Ebene 2 und alle anderen Warnungen an, die für Produktionszwecke empfohlen werden.
- Level4 – Ebene 4 zeigt alle Warnungen der Ebene 3 und Informationswarnungen an, die in den meisten Fällen sicher ignoriert werden können.
- EnableAllWarnings – Aktiviert alle Warnungen, einschließlich der standardmäßig deaktivierten Warnungen.
Warnungen als Fehler behandeln
Behandelt Compilerwarnungen als Fehler. Für ein neues Projekt ist es möglicherweise am besten, in jeder Kompilierung zu verwenden /WX . Beheben Sie alle Warnungen, um schwer zu findende Codefehler zu minimieren.
Version der Warnung
Ausblenden von Warnungen, die nach einer bestimmten Version des Compilers eingeführt wurden. Legt fest /Wv:xx[.yy[.zzzzz]].
Diagnoseformat
Ermöglicht umfassende Diagnosefunktionen mit Spalteninformationen und Quellkontext in Diagnosemeldungen.
Optionen
- Caret – Stellt Spalteninformationen in der Diagnosenachricht bereit. Gibt auch die relevante Zeile des Quellcodes mit einem Caret aus, der die problematische Spalte angibt.
- Spalteninformationen – Gibt zusätzlich die Spaltennummer in der Zeile an, in der die Diagnose ausgestellt wird, falls zutreffend.
- Klassisch – Gibt nur die vorherigen, präzisen Diagnosemeldungen mit der Zeilennummer aus.
SDL-Prüfungen
Zusätzliche von SDL (Security Development Lifecycle) empfohlene Überprüfungen. Umfasst die Aktivierung zusätzlicher Funktionen für die sichere Codegenerierung sowie das Behandeln zusätzlicher sicherheitsrelevanter Warnungen als Fehler. Sätze /sdl, /sdl-.
Kompilierung mit mehreren Prozessoren
Aktivieren Sie die Multiprozessorkompilierung. Legt die /MP Compileroption fest.
AddressSanitizer aktivieren
Kompiliert und verknüpft das Programm mit der AddressSanitizer-Instrumentierung. Diese Eigenschaft unterstützt derzeit x86- und x64-Zielbuilds. Legt die /fsanitize Compileroption fest.
Aktivieren der Fuzzerunterstützung (Experimental)
Kompiliert Programme mit dem Fuzzer. Aktivieren Sie AddressSanitizer für optimale Ergebnisse. Derzeit für x86- und x64-Builds verfügbar. Legt fest /fsanitize=fuzzer.
C/C++-Optimierungseigenschaften
Optimierung
Wählen Sie eine Option für die Codeoptimierung aus. Wählen Sie "Benutzerdefiniert" aus, um bestimmte Optimierungsoptionen zu verwenden. Legt /Od, /O1, /O2 fest.
Optionen
- Benutzerdefiniert: Benutzerdefinierte Optimierung
- Deaktiviert: Deaktivieren der Optimierung.
-
Maximale Optimierung (Favor Size) - entspricht
/Os /Oy /Ob2 /Gs /GF /Gy. -
Maximale Optimierung (Favor Speed) - entspricht
/Oi /Ot /Oy /Ob2 /Gs /GF /Gy. -
Optimierungen (Favor Speed) - entspricht
/Oi /Ot /Oy /Ob2.
Inlinefunktionserweiterung
Wählen Sie den Grad der Erweiterung von Inline-Funktionen für den Build aus. Legt fest /Ob.
Optionen
- Standard
- Deaktiviert – Deaktiviert die Inlineerweiterung, die standardmäßig aktiviert ist.
-
Nur __inline – Erweitert nur Funktionen, die als
inline,__forceinlineoder__inlinemarkiert sind. Oder in einer C++-Memberfunktion, die in einer Klassendeklaration definiert ist. -
Any Suitable - Erweitert Funktionen, die als
inlineoder__inlinemarkiert sind, sowie jede andere Funktion, die der Compiler auswählt. (Die Erweiterung erfolgt nach Ermessen des Compilers. Diese compilergewählte Erweiterung wird häufig als autoinlining bezeichnet.)
Systeminterne Funktionen aktivieren
Aktiviert systeminterne Funktionen. Die Verwendung systeminterner Funktionen generiert schnelleren, aber möglicherweise größeren Code. Legt fest /Oi.
Bevorzugte Größe oder Geschwindigkeit
Ob Codegröße oder Codegeschwindigkeit bevorzugt werden soll.
Global Optimization muss aktiviert sein. Sätze /Ot, /Os.
Optionen
- Kleincode bevorzugen – Minimiert die Größe von EXEs und DLLs, indem der Compiler angewiesen wird, die Größe gegenüber der Geschwindigkeit zu bevorzugen.
- Schnellen Code bevorzugen – Maximiert die Geschwindigkeit von EXEs und DLLs, indem der Compiler angewiesen wird, die Geschwindigkeit gegenüber der Größe zu bevorzugen. (Dieser Wert ist der Standardwert, wenn Optimierungen aktiviert sind.)
- Keine - Keine Größen- und Geschwindigkeitsoptimierung.
Rahmenzeiger weglassen
Unterdrückt die Erstellung von Frame-Pointern im Aufrufstapel.
Aktivieren von glasfasersicheren Optimierungen
Ermöglicht glasfasersichere Optimierungen für Anwendungen, die Fasern für den Zugriff auf threadlokalen Speicher verwenden. Legt fest /GT.
Optimierung des ganzen Programms
Ermöglicht modulübergreifende Optimierungen durch Verzögern der Codegenerierung zur Verknüpfungszeit. Erfordert die Linkeroption Linkzeitcodegenerierung. Legt fest /GL.
C/C++-Präprozessoreigenschaften
Präprozessordefinitionen
Definiert Vorverarbeitungssymbole für Ihre Quelldatei.
Präprozessordefinitionen aufheben
Gibt mindestens eine aufgehobene Präprozessordefinition an. Legt fest /U.
Alle Präprozessordefinitionen aufheben
Entfernt alle zuvor definierten Präprozessor-Definitionen. Legt fest /u.
Standard-Inkludierungspfade ignorieren
Verhindert, dass der Compiler nach Eingeschlossenen Dateien in Verzeichnissen sucht, die in den INCLUDE-Umgebungsvariablen angegeben sind.
Vorverarbeitung in eine Datei
Verarbeitet C- und C++-Quelldateien und schreibt die vorverarbeitete Ausgabe in eine Datei. Diese Option unterdrückt die Kompilierung und produziert keine .obj Datei.
Unterdrücken der Zeilennummern bei der Vorverarbeitung
Vorverarbeitung ohne Einsatz von #line Direktiven (Anweisungen).
Kommentare beibehalten
Aktivieren Sie diese Option, um C- und C++-Quellkommentare (// und /* ... */) in .i Dateien und anderen Vorprozessorausgaben beizubehalten. Der Präprozessor entfernt standardmäßig Kommentare.
Erfordert das Festlegen mindestens einer der Vorverarbeitungsoptionen . Legt fest /C.
Verwenden von Standardkonformierungsvorprozessoren
Verwenden Sie einen standardkonformen Präprozessor (/Zc:preprocessor). Derzeit impliziert von /std:c11 und späteren Versionen. Um den Legacy-Präprozessor zu verwenden, legen Sie diese Eigenschaft auf "Nein" fest.
C/C++-Codegenerierungseigenschaften
Aktivieren von Zeichenfolgenpooling
Aktivieren Sie diese Eigenschaft, um Zeichenfolgenpooling zu aktivieren, das identische Zeichenfolgen im kompilierten Programm zu einer einzigen schreibgeschützten Kopie zusammenfasst. Dies kann zu kleineren Programmen führen.
/O1, /O2und /ZI legen Sie die /GF Option automatisch fest.
Minimale Neuerstellung aktivieren
Ermöglicht eine minimale Neuerstellung, die bestimmt, ob C++-Quelldateien, die Headerdateien (H) enthalten, neu kompiliert werden sollen, die geänderte C++-Klassendefinitionen enthalten.
C++-Ausnahmen aktivieren
Gibt das Ausnahmebehandlungsmodell an, das vom Compiler verwendet wird.
Optionen
-
Ja mit SEH-Ausnahmen – Das Ausnahmebehandlungsmodell, das asynchrone (strukturierte) und synchrone (C++)-Ausnahmen abfangen. Legt fest
/EHa. -
Ja – Das Ausnahmebehandlungsmodell, das nur C++-Ausnahmen abfangen und den Compiler so konfiguriert, dass davon ausgegangen wird, dass
extern "C"Funktionen niemals eine C++-Ausnahme auslösen. Legt fest/EHsc. -
Ja mit externen C-Funktionen – Das Ausnahmebehandlungsmodell, das nur C++-Ausnahmen abfangen und den Compiler so konfiguriert, dass davon ausgegangen wird, dass
extern "C"Funktionen eine Ausnahme auslösen. Legt fest/EHs. - Nein – Keine Ausnahmebehandlung.
Kleinere Typüberprüfung
Aktiviert die Überprüfung auf Konvertierung in kleinere Typen. Nicht kompatibel mit einem anderen Optimierungstyp als Debug. Legt fest /RTCc.
Grundlegende Laufzeitüberprüfungen
Aktiviert grundlegende Laufzeitfehlerprüfungen. Nicht kompatibel mit einem anderen Optimierungstyp als Debug. Legt /RTCs, /RTC1, /RTCu fest.
Optionen
- Stack Frames – Aktiviert die Laufzeitfehlerprüfung für Stack-Frames.
- Nicht initialisierte Variablen – Meldet, wenn eine Variable verwendet wird, ohne initialisiert zu werden.
-
Beide (/RTC1, gleichw. mit /RTCsu) – Äquivalent von
/RTCsu. - Standard : Standardlaufzeitüberprüfungen .
Laufzeitbibliothek
Gibt eine Laufzeitbibliothek zum Verknüpfen an. Sets /MT, /MD, /MTd, /MDd.
Optionen
- Multithreaded – Bewirkt, dass Ihre Anwendung die statische Multithreadversion der Laufzeitbibliothek verwendet.
-
Multithread-Debug - Definiert
_DEBUGund_MT. Diese Option bewirkt außerdem, dass der Compiler den Bibliotheksnamen LIBCMTD.lib in die Datei.objeinträgt, sodass der LinkerLIBCMTD.libzum Auflösen externer Symbole verwendet. -
Multithread-DLL - Bewirkt, dass Ihre Anwendung die DLL-spezifische, Multithread-Version der Laufzeitbibliothek verwendet. Definiert
_MTund_DLLund bewirkt, dass der Compiler den Bibliotheksnamen MSVCRT.lib in die.obj-Datei einfügt. -
Multithreaded Debug DLL - Definiert
_DEBUG,_MTund_DLLbewirkt, dass Ihre Anwendung die Debug-, DLL-spezifische, Multithread-Version der Laufzeitbibliothek verwendet. Er bewirkt außerdem, dass der Compiler den Bibliotheksnamen MSVCRTD.lib in die.objDatei eingibt.
Strukturmemberausrichtung
Gibt 1-, 2-, 4-, 8- oder 16-Byte-Begrenzungen für die Ausrichtung der Strukturmember an. Legt fest /Zp.
Optionen
-
1 Byte - Packt Strukturen auf Ein-Byte-Grenzen. Wie in
/Zp. - 2 Bytes – Packt Strukturen an Zwei-Byte-Grenzen.
- 4 Bytes – Packt Strukturen an vier Bytegrenzen.
- 8 Bytes – Packt Strukturen auf acht Byte-Grenzen (Standard).
- 16 Byte - Packt Strukturen an 16-Byte-Grenzen.
- Standard – Standardausrichtungseinstellungen .
Gibt die Grenzen von 1, 2, 4 oder 8 Byte für die Ausrichtung von Strukturmitgliedern an. Legt fest /Zp.
Optionen
-
1 Byte - Packt Strukturen auf Ein-Byte-Grenzen. Wie in
/Zp. - 2 Bytes – Packt Strukturen an Zwei-Byte-Grenzen.
- 4 Bytes – Packt Strukturen an vier Bytegrenzen.
- 8 Bytes – Packt Strukturen auf acht Byte-Grenzen (Standard).
- Standard – Standardausrichtungseinstellungen .
Sicherheitsüberprüfung
Hilft beim Erkennen von Stapelpufferüberläufen, die Angreifer nutzen können, um Ihre Anwendung zu kompromittieren.
Optionen
Control Flow Guard
Hilft beim Erkennen von Versuchen, an illegale Codeblöcke zu disponieren.
Optionen
-
Ja – Steuerungsflussschutz aktivieren. Legt fest
/guard:cf. - Nein
Funktionslevel-Linking aktivieren
Ermöglicht dem Compiler, einzelne Funktionen in Form von kompilierten Funktionen (COMDATs) zu kompilieren. Erforderlich für das Bearbeiten und Fortsetzen der Arbeit. Legt fest /Gy.
Parallele Codegenerierung aktivieren
Ermöglicht dem Compiler, für Schleifen, die mit #pragma loop(hint_parallel[(n)]) gekennzeichnet sind, parallelen Code zu generieren, wenn die Optimierung aktiviert ist.
Erweiterten Befehlssatz aktivieren
Aktivieren Sie die Verwendung von Anweisungen auf Prozessoren, die erweiterte Anweisungssätze unterstützen. Zum Beispiel die SSE-, SSE2-, AVX- und AVX2-Erweiterungen für IA-32 sowie die AVX- und AVX2-Erweiterungen für x64.
/arch:SSE ist nur für x86-Builds verfügbar.
/arch:SSE2 ist für x86- und x64-Builds verfügbar und ist die Standardeinstellung für beide Architekturen. Die Verwendung erweiterter Anweisungen kann mit /arch:IA32deaktiviert werden. Weitere Informationen finden Sie unter/arch (x86), /arch (x64), /arch (ARM64)und /arch (ARM).
Optionen
-
Streaming SIMD Extensions (X86) – Aktiviert Streaming SIMD Extensions. Legt fest
/arch:SSE. -
Streaming SIMD Extensions 2 (X86) – Aktiviert Streaming SIMD-Erweiterungen 2. Legt fest
/arch:SSE2. -
Erweiterte Vektorerweiterungen (X86/X64) – Ermöglicht erweiterte Vektorerweiterungen. Legt fest
/arch:AVX. -
Advanced Vector Extensions 2 (X86/X64) – Ermöglicht erweiterte Vektorerweiterungen 2. Legt fest
/arch:AVX2. -
Advanced Vector Extensions 512 (X86/X64) – Ermöglicht erweiterte Vektorerweiterungen 512. Legt fest
/arch:AVX512. -
Advanced Vector Extensions AVX10.1 (X86/X64) – Aktiviert Advanced Vector Extensions 10, Version 1. Legt fest
/arch:AVX10.1. -
Advanced Vector Extensions AVX10.2 (X86/X64) – Aktiviert Erweiterte Vektorerweiterungen 10, Version 2. Legt fest
/arch:AVX10.2. -
Virtualisierungserweiterungen (ARM) Aktiviert ARM-Virtualisierungserweiterungen. Legt fest
/arch:ARMv7VE. -
ARM VFPv4-Anweisungen (ARM) Aktiviert ARM VFPv4-Anweisungen. Legt fest
/arch:VFPv4. -
CPU-Erweiterungsanforderungen ARMv8.0-A (ARM64) Aktiviert ARMv8.0-A-Anforderungen. Legt fest
/arch:arm8.0. -
CPU-Erweiterungsanforderungen ARMv8.1-A (ARM64). Aktiviert ARMv8.1-A-Anforderungen. Legt fest
/arch:arm8.1. -
CPU-Erweiterungsanforderungen ARMv8.2-A (ARM64) Aktiviert ARMv8.2-A-Anforderungen. Legt fest
/arch:arm8.2. -
CPU-Erweiterungsanforderungen ARMv8.3-A (ARM64) Aktiviert ARMv8.3-A-Anforderungen. Legt fest
/arch:arm8.3. -
CPU-Erweiterungsanforderungen ARMv8.4-A (ARM64) Aktiviert ARMv8.4-A-Anforderungen. Legt fest
/arch:arm8.4. -
CPU-Erweiterungsanforderungen ARMv8.5-A (ARM64) Aktiviert ARMv8.5-A-Anforderungen. Legt fest
/arch:arm8.5. -
CPU-Erweiterungsanforderungen ARMv8.6-A (ARM64) Aktiviert ARMv8.6-A-Anforderungen. Legt fest
/arch:arm8.6. -
CPU-Erweiterungsanforderungen ARMv8.7-A (ARM64). Aktiviert ARMv8.7-A-Anforderungen. Legt fest
/arch:arm8.7. -
CPU-Erweiterungsanforderungen ARMv8.8-A (ARM64). Aktiviert ARMv8.8-A-Anforderungen. Legt fest
/arch:arm8.8. -
Keine erweiterten Anweisungen – Deaktiviert erweiterte Anweisungen für x86-Builds. Legt fest
/arch:IA32. -
Not Set - Legt keine Option explizit fest
/arch.
Aktivieren Sie die Verwendung von Anweisungen auf Prozessoren, die erweiterte Anweisungssätze unterstützen. Zum Beispiel die Erweiterungen von IA-32 um SSE, SSE2, AVX und AVX2 sowie die Erweiterungen von x64 um AVX und AVX2. Derzeit sind /arch:SSE und /arch:SSE2 nur beim Erstellen für die x86-Architektur verfügbar. Wenn keine Option angegeben ist, verwendet der Compiler Anweisungen für Prozessoren, die SSE2 unterstützen. Die Verwendung erweiterter Anweisungen kann mit /arch:IA32deaktiviert werden. Weitere Informationen finden Sie unter/arch (x86), /arch (x64), /arch (ARM64)und /arch (ARM).
Optionen
-
Streaming SIMD Extensions (X86) – Aktiviert Streaming SIMD Extensions. Legt fest
/arch:SSE. -
Streaming SIMD Extensions 2 (X86) – Aktiviert Streaming SIMD-Erweiterungen 2. Legt fest
/arch:SSE2. -
Erweiterte Vektorerweiterungen (X86/X64) – Ermöglicht erweiterte Vektorerweiterungen. Legt fest
/arch:AVX. -
Advanced Vector Extensions 2 (X86/X64) – Ermöglicht erweiterte Vektorerweiterungen 2. Legt fest
/arch:AVX2. -
Advanced Vector Extensions 512 (X86/X64) – Ermöglicht erweiterte Vektorerweiterungen 512. Legt fest
/arch:AVX512. -
Advanced Vector Extensions AVX10.1 (X86/X64) – Aktiviert Advanced Vector Extensions 10, Version 1. Legt fest
/arch:AVX10.1. -
Virtualisierungserweiterungen (ARM) Aktiviert ARM-Virtualisierungserweiterungen. Legt fest
/arch:ARMv7VE. -
ARM VFPv4-Anweisungen (ARM) Aktiviert ARM VFPv4-Anweisungen. Legt fest
/arch:VFPv4. -
CPU-Erweiterungsanforderungen ARMv8.0-A (ARM64) Aktiviert ARMv8.0-A-Anforderungen. Legt fest
/arch:arm8.0. -
CPU-Erweiterungsanforderungen ARMv8.1-A (ARM64). Aktiviert ARMv8.1-A-Anforderungen. Legt fest
/arch:arm8.1. -
CPU-Erweiterungsanforderungen ARMv8.2-A (ARM64) Aktiviert ARMv8.2-A-Anforderungen. Legt fest
/arch:arm8.2. -
CPU-Erweiterungsanforderungen ARMv8.3-A (ARM64) Aktiviert ARMv8.3-A-Anforderungen. Legt fest
/arch:arm8.3. -
CPU-Erweiterungsanforderungen ARMv8.4-A (ARM64) Aktiviert ARMv8.4-A-Anforderungen. Legt fest
/arch:arm8.4. -
CPU-Erweiterungsanforderungen ARMv8.5-A (ARM64) Aktiviert ARMv8.5-A-Anforderungen. Legt fest
/arch:arm8.5. -
CPU-Erweiterungsanforderungen ARMv8.6-A (ARM64) Aktiviert ARMv8.6-A-Anforderungen. Legt fest
/arch:arm8.6. -
CPU-Erweiterungsanforderungen ARMv8.7-A (ARM64). Aktiviert ARMv8.7-A-Anforderungen. Legt fest
/arch:arm8.7. -
CPU-Erweiterungsanforderungen ARMv8.8-A (ARM64). Aktiviert ARMv8.8-A-Anforderungen. Legt fest
/arch:arm8.8. -
Keine erweiterten Anweisungen – Deaktiviert erweiterte Anweisungen für x86-Builds. Legt fest
/arch:IA32. -
Not Set - Legt keine Option explizit fest
/arch.
Optionen
-
Streaming SIMD-Erweiterungen – Streaming SIMD-Erweiterungen. Festlegen von
/arch:SSE -
Streaming SIMD Extensions 2 – Streaming SIMD Extensions 2. Festlegen von
/arch:SSE2 -
Erweiterte Vektorerweiterungen – Erweiterte Vektorerweiterungen. Festlegen von
/arch:AVX -
Erweiterte Vektorerweiterungen 2 – Erweiterte Vektorerweiterungen 2. Festlegen von
/arch:AVX2 -
Keine erweiterten Anweisungen – keine erweiterten Anweisungen. Festlegen von
/arch:IA32 - Nicht festgelegt - Nicht festgelegt.
Vektorlänge aktivieren
Aktivieren Sie die Auswahl der Vektorlänge für /arch:AVX512 und /arch:AVX10.x Kennzeichnungen. Zulässige Werte sind 256 und 512 Bit (X86/X64).
Gleitkommamodell
Legt das Gleitkommamodell fest. Legt /fp:precise, /fp:fast, /fp:strict fest.
Optionen
- Genau – Standardwert. Verbessert die Konsistenz von Gleitkommatests für Gleichheit und Ungleichheit.
-
Strikt – Das strengste Gleitkommamodell.
/fp:strictbewirkt, dassfp_contractdeaktiviert undfenv_accessaktiviert ist./fp:exceptist impliziert und kann durch explizite Angabe/fp:except-deaktiviert werden. Bei Verwendung mit/fp:except-erzwingt/fp:strictwird strenge Gleitkommazahlensemantik erzwungen, unabhängig von außergewöhnlichen Ereignissen. - Schnell – Erstellt den schnellsten Code in den meisten Fällen.
Gleitkomma-Ausnahmen aktivieren
Verlässliches Modell für Gleitkommaausnahmen. Ausnahmen werden unmittelbar nach dem Auslösen erhoben. Legt fest /fp:except.
Erstellen Sie ein Hotpatch-fähiges Image
Wenn hotpatching aktiviert ist, stellt der Compiler sicher, dass die erste Anweisung jeder Funktion zwei Bytes ist, wie für das Hot Patching erforderlich. Legt fest /hotpatch.
Spectre-Abschwächung
Spectre-Abhilfemaßnahmen für CVE 2017-5753. Legt fest /Qspectre.
Optionen
- Aktiviert – Aktivieren sie die Spectre-Entschärfung für CVE 2017-5753.
- Alle Lasten – Aktivieren Sie die Spectre-Entschärfung für alle Lasten.
- Alle Kontrollfluss-Ladevorgänge – Aktivieren Sie die Spectre-Abwehrmaßnahmen für Kontrollfluss-Ladevorgänge.
- Deaktiviert – Nicht festgelegt.
Spectre-Abschwächung
Spectre-Abhilfemaßnahmen für CVE 2017-5753. Legt fest /Qspectre.
Optionen
- Aktiviert – Aktivieren sie die Spectre-Entschärfung für CVE 2017-5753.
- Deaktiviert – Nicht festgelegt.
Aktivieren von Intel JCC Erratum Mitigation
Softwareproblemlösung bei Leistungsauswirkungen, die durch das Intel JCC Erratum Microcode-Update verursacht werden. Legt fest /QIntel-jcc-erratum.
Aktivieren von EH-Fortsetzungsmetadaten
Generiert eine sortierte Liste aller gültigen Fortsetzungsziele für die Ausnahmebehandlung für eine Binärdatei, die während der Laufzeit für die RIP-Überprüfung verwendet wird. Derzeit für x64-Builds verfügbar. Legt fest /guard:ehcont.
Signierte Rückgaben aktivieren
Aktiviert signierte Rückgaben, die dabei helfen, Versuche zu erkennen und zu verhindern, bei Funktionsrückgaben zu unzulässigen Blöcken zu verzweigen. Derzeit verfügbar für ARM64-Builds. Legt fest /guard:signret.
C/C++-Spracheigenschaften
Spracherweiterungen deaktivieren
Unterdrückt oder aktiviert Spracherweiterungen. Legt fest /Za.
Behandle WChar_t als eingebauten Typ
Wenn Sie diese Eigenschaft aktivieren, wird der Typ wchar_t zu einem nativen Typ, der __wchar_t auf die gleiche Weise zugeordnet wird, wie short__int16 zugeordnet wird.
/Zc:wchar_t ist standardmäßig aktiviert.
Übereinstimmung in For-Schleifenbereich erzwingen
Implementiert standardmäßiges C++-Verhalten für die for Anweisungsschleifen mit Microsoft-Erweiterungen. Legt fest /Za, /Ze (Spracherweiterungen deaktivieren.
/Zc:forScope ist standardmäßig aktiviert.
Entfernen nicht referenzierter Code und Daten
Wenn Sie diese Eigenschaft aktivieren, generiert der Compiler keine Symbolinformationen mehr für nicht referenzierten Code und Daten.
Typkonvertierungsregeln erzwingen
Wird verwendet, um einen Rvalue-Bezugstyp als Ergebnis eines Umwandlungsvorgangs gemäß dem C++11-Standard zu identifizieren.
Laufzeittypeninformationen aktivieren
Fügt Code zum Überprüfen von C++-Objekttypen zur Laufzeit hinzu (Laufzeittypinformationen oder RTTI). Sätze /GR, /GR-.
OpenMP-Unterstützung
Aktiviert OpenMP 2.0-Spracherweiterungen. Legt fest /openmp.
C++-Sprachstandard
Bestimmt den C++-Sprachstandard, den der Compiler erzwingt. Der Standardwert legt keine Standardoption fest, sodass der Compiler seine C++14-Standardeinstellung verwendet. Wenn Sie einen bestimmten Wert auswählen, wird die entsprechende /std Compileroption festgelegt.
Optionen
- Standard (ISO C++14 Standard)
- ISO C++14 Standard (/std:c++14)
- ISO C++17 Standard (/std:c++17)
- ISO C++20 Standard (/std:c++20)
- Vorschau – ISO C++23 Standard (/std:c++23preview)
- Vorschau – Features aus dem neuesten C++-Arbeitsentwurf (/std:c++latest)
C-Sprachstandard
Bestimmt den C-Sprachstandard, den der Compiler erzwingt. Der Standardwert legt keine Standardoption fest, sodass der Compiler seine standardmäßige MSVC-Standardeinstellung verwendet. Wenn Sie einen bestimmten Wert auswählen, wird die entsprechende /std Compileroption festgelegt.
Optionen
- Standardmäßig (Legacy MSVC)
- ISO C11 Standard (/std:c11)
- ISO C17 (2018) Standard (/std:c17)
- Vorschau – Features aus dem neuesten C Working Draft (/std:clatest)
Konformitätsmodus
Aktiviert oder unterdrückt den Konformitätsmodus. Legt fest /permissive-.
Experimentelle C++-Standardbibliotheksmodule aktivieren
Experimentelle Unterstützung für die C++-Module TS- und Standardbibliotheksmodule.
Erstellen von ISO C++23-Standardbibliotheksmodulen
Ab Visual Studio 17.6 suchen und erstellen Microsoft C++-Projekte automatisch ISO C++23-Standardbibliotheksmodule, wenn diese Eigenschaft aktiviert ist und C++-Sprachstandard auf /std:c++latest festgelegt ist. Damit können Sie import std oder import std.compat in Ihrem C++-Code ausführen.
Eigenschaften vorkompilierter Header für C/C++
Vorkompilierter Header
Vorkompilierte Kopfzeile erstellen/verwenden
Ermöglicht die Erstellung oder Verwendung eines vorkompilierten Headers während der Erstellung. Sätze /Yc, /Yu.
Optionen
-
Create - Weist den Compiler an, eine vorkompilierte Headerdatei (
.pch) zu erstellen, die den Kompilierungsstatus an einem bestimmten Punkt darstellt. -
Use - Weist den Compiler an, eine vorhandene vorkompilierte Headerdatei (
.pch) in der aktuellen Kompilierung zu verwenden. - Keine vorkompilierten Kopfzeilen verwenden – Keine vorkompilierten Kopfzeilen.
Vorkompilierte Headerdatei
Gibt den Namen der Headerdatei an, die der Compiler zum Erstellen oder Zugreifen auf einen vorkompilierten Header verwendet. Sätze /Yc, /Yu.
Vorkompilierte Headerausgabedatei
Gibt den Pfad oder Namen der generierten vorkompilierten Headerdatei an. Legt fest /Fp.
C/C++-Ausgabedateien-Eigenschaften
Zugewiesene Quelle erweitern
Erstellt eine Eintragsdatei mit erweiterten Attributen, die in die Quelldatei eingefügt wurden. Legt fest /Fx.
Assembler-Ausgabe
Gibt den Inhalt der Assemblysprachenausgabedatei an. Legt fest /FA, /FAs, /FAc, /FAcs.
Optionen
- Keine Auflistung - Keine Auflistung.
-
Nur-Assembly-Auflistung - Assembly-Code:
.asm. -
Assembly mit Computercode - Computer- und Assemblycode:
.cod. -
Assembler mit Quellcode - Quell- und Assemblercode:
.asm. -
Assembly, Computercode und Quelle – Assembly , Computercode und Quellcode:
.cod.
Verwenden von Unicode für Assembler-Auflistung
Bewirkt, dass die Ausgabedatei im UTF-8-Format erstellt wird.
ASM-Listenspeicherort
Gibt den relativen Pfad oder Namen für die ASM-Eintragsdatei an. Kann ein Datei- oder Verzeichnisname sein. Legt fest /Fa.
Name der Modulausgabedatei
Speicherort der Ausgabedatei für Modul oder Headereinheit (BMI). Kann ein Datei- oder Verzeichnisname sein. Legt fest /ifcOutput[name].
Dateiname der Modulabhängigkeiten
Gibt den Pfad und/oder den Namen der generierten Modulabhängigkeitsdatei an. Legt fest /scanDependencies[path].
Name der Objektdatei
Gibt einen Namen an, der den Standardobjektdateinamen überschreibt. Kann ein Datei- oder Verzeichnisname sein. Legt fest /Fo.
Name der Programmdatenbankdatei
Gibt einen Namen für eine vom Compiler generierte PDB-Datei an. Gibt außerdem den Basisnamen für die erforderliche vom Compiler generierte IDB-Datei an. Kann ein Datei- oder Verzeichnisname sein. Legt fest /Fd.
Xml-Dokumentationsdateien generieren
Gibt an, dass der Compiler XML-Dokumentationskommentardateien generieren soll (. XDC). Legt fest /doc.
XML-Dokumentationsdateiname
Gibt den Namen der generierten XML-Dokumentationsdateien an. Kann ein Datei- oder Verzeichnisname sein. Legt den /doc:<Namen fest.>
Abhängigkeitsdatei der Quelle generieren
Generiert eine JSON-Datei mit der Liste aller Dateien, die der Compiler für die Kompilierung der Quelle verwendet. Legt fest /sourceDependencies.
Dateiname der Quellabhängigkeiten
Gibt den Pfad und/oder den Namen der generierten Quellabhängigkeitsdatei an. Legt fest /sourceDependencies[path].
C/C++-Eigenschaften zum Durchsuchen von Informationen
Durchsuchen von Informationen aktivieren
Gibt an, ob der Compiler eine .bsc Datei generieren soll. Legt fest /FR.
Informationsdatei durchsuchen
Gibt einen optionalen Namen für die Browserinformationsdatei an. Legt den /FR<Namen fest.>
C/C++-Eigenschaften für externe Includes
Dateien in Winkelklammern als extern behandeln
Gibt an, ob Dateien, die in spitzen Klammern enthalten sind, als extern behandelt werden sollen. Legen Sie diese Eigenschaft auf "Ja " fest, um die /external:anglebrackets Compileroption festzulegen.
Warnungsebene für externe Header
Wählen Sie aus, wie streng der Compiler zu Codefehlern in externen Headern sein soll. Diese Eigenschaft legt die /external:Wn Compileroption fest. Wenn dieser Wert auf Inherit Project Warning Level oder "Standard" festgelegt ist, werden die anderen /external-Optionen ignoriert.
Vorlagendiagnose in externen Headern
Gibt an, ob die Warnstufe in einer Vorlageninstanzenkette ausgewertet werden soll. Legen Sie diese Eigenschaft auf "Ja " fest, um die /external:templates- Compileroption festzulegen.
Codeanalyse für externe Header deaktivieren
Deaktiviert die Codeanalyse für externe Header. Legt die /analyze:external- Compileroption fest.
Regelsatz für die Analyse von externen Kopfzeilen
Gibt eine Codeanalyse-Regelsatzüberschreibung für externe Header an. Wenn diese Eigenschaft nicht angegeben ist, wird die einstellung Code Analysis verwendet. Legt die /analyze:external:ruleset path Compileroption fest.
Erweiterte C/C++-Eigenschaften
Aufrufkonvention
Wählen Sie die Standardaufrufkonvention für Ihre Anwendung aus (kann von Funktion überschrieben werden). Sets /Gd, /Gz, /Gr, /Gv.
Optionen
-
__cdecl– Gibt die__cdecl-Aufrufkonvention für alle Funktionen an, mit Ausnahme von C++-Memberfunktionen und Funktionen, die mit__stdcalloder__fastcallgekennzeichnet sind. -
__fastcall– Gibt die__fastcall-Aufrufkonvention für alle Funktionen an, mit Ausnahme von C++-Memberfunktionen sowie von Funktionen, die mit__cdecloder__stdcallgekennzeichnet sind. Alle__fastcall-Funktionen müssen Prototypen haben. -
__stdcall– Gibt die__stdcall-Aufrufkonvention für alle Funktionen an, mit Ausnahme von C++-Memberfunktionen und mit__cdecloder__fastcallmarkierten Funktionen. Alle__stdcall-Funktionen müssen Prototypen haben. -
__vectorcall- Gibt die__vectorcallAufrufkonvention für alle Funktionen an, mit Ausnahme von C++-Memberfunktionen und -funktionen, die markiert__cdeclsind ,__fastcalloder__stdcall. Alle__vectorcall-Funktionen müssen Prototypen haben.
Kompilieren als
Wählen Sie eine Kompilierungsspracheoption für Quelldateien aus. Legt /TC, /TP, /interface, /internalPartition oder /exportHeader Optionen fest.
Optionen
- Standard – Standardwert.
-
Kompilieren als C Code (
/TC) – Kompilieren der angegebenen Quelldateien als C-Code. Standardmäßig werden Dateien mit einer.cErweiterung als C kompiliert. -
Kompilieren als C++-Code (
/TP) – Kompilieren der angegebenen Quelldateien als C++-Code. Standardmäßig werden alle Quelldateien, die weder über eine.c.ixx.cppm.hErweiterung noch über eine Erweiterung verfügen, als C++ kompiliert. -
Kompilieren als C++-Modulcode (
/interface) – Kompilieren der angegebenen Quelldateien als C++-Modulcode. Standardmäßig werden Dateien mit der Dateierweiterung.ixxoder.cppmals C++-Modulcode kompiliert. -
Kompilieren als interne C++-Modulpartition (
/internalPartition) – Kompilieren der angegebenen Quelldateien als interne C++-Modulpartition. -
Kompilieren als C++-Headereinheit (
/exportHeader) – Kompilieren der angegebenen Quelldateien als C++-Headereinheit. Standardmäßig werden Dateien mit einer.hErweiterung oder ohne Erweiterung als Kopfzeileneinheiten kompiliert.
Bestimmte Warnungen deaktivieren
Deaktivieren Sie die angegebenen Warnnummern. Fügen Sie die Warnnummern in eine durch Semikolons getrennte Liste ein. Legt die Anzahl fest/wd<>.
Explizite Includedatei
Gibt mindestens eine erzwungene Includedatei an. Legt den /FI<Namen fest.>
Explizite #using-Datei
Gibt mindestens eine erzwungene #using-Datei an. Legt den /FU<Namen fest.>
Einschlüsse anzeigen
Erzeugt eine Liste von Include-Dateien mit der Compilerausgabe. Legt fest /showIncludes.
Vollständige Pfade verwenden
Verwenden Sie vollständige Pfade in Diagnosenachrichten. Legt fest /FC.
Standardbibliotheksname weglassen
Gibt an, dass Standardbibliotheksnamen in .obj Dateien weggelassen werden sollen. Legt fest /Zl.
Meldung interner Compilerfehler
Hinweis
Diese Option ist veraltet. Ab Windows Vista wird die Fehlerberichterstattung durch Windows-Fehlerberichterstattung (WER)-Einstellungen gesteuert.
Behandeln bestimmter Warnungen als Fehler
Behandelt die spezifische Compilerwarnung als Fehler, wobei n eine Compilerwarnung ist.
Zusätzliche Optionen
Zusätzliche Optionen.