Freigeben über


C/C++-Eigenschaftsseiten

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 mit Semikolons (';), wenn mehrere vorhanden sind. Legt die /AI Compileroption fest.

Weitere BMI-Verzeichnisse

Gibt ein oder mehrere Verzeichnisse an, die durchsucht werden sollen, um Namen aufzulösen, die an eine import Direktive übergeben werden. Trennen Sie Verzeichnisse mit Semikolons (';), wenn mehrere vorhanden sind. Legt die /ifcSearchDir[path] Compileroption fest.

Zusätzliche Modulabhängigkeiten

Gibt ein oder mehrere Module an, die zur Auflösung von Namen verwendet werden sollen, die an eine import Direktive weitergegeben werden. Trennen Sie Verzeichnisse mit Semikolons (';), wenn mehrere vorhanden sind. Legt die /reference Compileroption fest.

Zusätzliche Kopfzeileneinheitsabhängigkeiten

Gibt eine oder mehrere Headereinheiten an, die zum Auflösen von Namen verwendet werden sollen, die an eine import Headerdirektive übergeben werden. Trennen Sie Verzeichnisse mit Semikolons (';), wenn mehrere vorhanden sind. Legt die /headerUnit Compileroption fest.

Scannen von Quellen für Modulabhängigkeiten

Bei Einstellung auf "Ja" durchsucht der Compiler alle C++-Quellen, nicht nur die Modulschnittstellen und Headereinheiten, nach Abhängigkeiten von Moduleinheiten und Header-Einheiten. 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. In Kombination mit Translate Includes to Imports wird jede Headerdatei, die in einer header-units.json Datei im selben Verzeichnis wie die Headerdatei angegeben ist, in eine Kopfzeileneinheit kompiliert.

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 dieser 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 Headereinheit (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. In Kombination mit Scanquellen für Modulabhängigkeiten findet der Compiler automatisch alle Headerdateien, die in Kopfzeileneinheiten 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

  • Keine: Generiert keine Debuginformationen, sodass die Kompilierung ggf. schneller erfolgt.
  • C7-kompatibel – Wählen Sie den Typ der für Ihr Programm erstellten Debuginformationen aus und ob diese Informationen in Objektdateien (.obj) oder in einer Programmdatenbank (PDB) gespeichert werden.
  • Programmdatenbank – 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 – 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. Platzieren Sie deoptimierte Haltepunkte und führen Sie jeden Schritt an einer beliebigen Stelle durch, mit der bedarfsgesteuerten Funktions-Deoptimierung. 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 /clr Dokumentation zur 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 nur MSIL-Datei (kein systemeigener ausführbarer Code) und überprüfbare Ausgabedatei.

Verwenden Sie die Windows-Runtime-Erweiterung

Verwenden Sie die Windows-Runtime-Sprachenerweiterungen. 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 sowie 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. Und gibt die relevante Zeile des Quellcodes mit einem Caret aus, das die problematische Spalte angibt.
  • Spalteninformationen – Gibt 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 empfohlene Prüfungen für den Security Development Lifecycle (SDL); umfasst das Aktivieren zusätzlicher Funktionen zur sicheren Codegenerierung und die Behandlung 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

Option zur Codeoptimierung auswählen; wählen Sie "Benutzerdefiniert" aus, um bestimmte Optimierungsoptionen zu verwenden. Sets /Od, /O1, /O2.

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) – Äquivalent zu /Oi /Ot /Oy /Ob2

Inlinefunktionserweiterung

Wählen Sie den Grad der Erweiterung von Inline-Funktionen für den Build aus. Setzt /Ob fest.

Optionen

  • Standard
  • Deaktiviert – Deaktiviert die Inlineerweiterung, die standardmäßig aktiviert ist.
  • Nur __inline – Erweitert nur Funktionen, die als inline, __forceinline oder __inline markiert sind. Oder in einer C++-Memberfunktion, die in einer Klassendeklaration definiert ist.
  • Any Suitable - Erweitert Funktionen, die als inline oder __inline markiert sind, sowie jede andere Funktion, die der Compiler auswählt. (Die Erweiterung erfolgt nach Ermessen des Compilers, 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; "Globale Optimierung" 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.)
  • Keine - Keine Größen- und Geschwindigkeitsoptimierung.

Rahmenzeiger weglassen

Unterdrückt die Erstellung von Frame-Pointern im Aufrufstapel.

Aktivieren von glasfasersicheren Optimierungen

Ermöglicht die Optimierung des Speicherplatzes bei Verwendung von Fasern und Thread-lokalem Speicherzugriff. Legt fest /GT.

Optimierung des ganzen Programms

Ermöglicht modulübergreifende Optimierungen durch Verzögern der Codegenerierung zur Verknüpfungszeit. Erfordert die Linkeroption "Verknüpfungszeitcodegenerierung". Legt fest /GL.

C/C++-Präprozessoreigenschaften

Präprozessordefinitionen

Definiert Vorverarbeitungssymbole für Ihre Quelldatei.

Präprozessordefinitionen aufheben

Gibt eine oder mehrere nicht mehr definierte Präprozessor-Unbenennungen an. Legt fest /U.

Alle Präprozessordefinitionen aufheben

Hebt die Definition aller zuvor definierten Präprozessorwerte auf. 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 während der Vorverarbeitung

Vorverarbeitung ohne Einsatz von #line Direktiven (Anweisungen).

Kommentare beibehalten

Unterdrückt den Kommentarstreifen aus dem Quellcode; erfordert, dass mindestens eine der Vorverarbeitungsoptionen festgelegt wird. Legt fest /C.

Verwenden von Standardkonformierungsvorprozessoren

Verwenden Sie einen standardkonformen Präprozessor (/Zc:preprocessor). Derzeit impliziert von /std:c11 und späteren Versionen. Um legacy preprocessor zu verwenden, legen Sie diese Eigenschaft auf "Nein" fest.

C/C++-Codegenerierungseigenschaften

Aktivieren von Zeichenfolgenpooling

Der Compiler erstellt nur eine schreibgeschützte Kopie identischer Zeichenfolgen im Programmimage. Es führt zu kleineren Programmen, einer Optimierung namens Zeichenfolgenpooling. /O1, /O2 und /ZI legen die Option /GF automatisch fest.

Minimale Neuerstellung aktivieren

Ermöglicht eine minimale Neuerstellung, die bestimmt, ob C++-Quelldateien, die geänderte C++-Klassendefinitionen enthalten, neu kompiliert werden sollen, die in Headerdateien .h gespeichert sind.

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 dem Compiler angibt, davon auszugehen, dass externe C-Funktionen niemals eine C++-Ausnahme auslösen. Legt fest /EHsc.
  • Ja mit externen C-Funktionen – Das Ausnahmebehandlungsmodell, das nur C++-Ausnahmen abfangen und dem Compiler angibt, davon auszugehen, dass externe C-Funktionen eine Ausnahme auslösen. Legt fest /EHs.
  • Nein – Keine Ausnahmebehandlung.

Kleinere Typüberprüfung

Aktivieren Sie die Überprüfung auf Konvertierung in kleinere Typen, die nicht mit einem anderen Optimierungstyp als debug kompatibel sind. Legt fest /RTCc.

Grundlegende Laufzeitüberprüfungen

Aktivieren Sie grundlegende Laufzeitfehlerprüfungen, die nicht mit einem anderen Optimierungstyp als debug kompatibel sind. Sets /RTCs, /RTCu, /RTC1.

Optionen

  • Stack Frames – Aktiviert die Fehlerüberprüfung zur Laufzeit des Stackframes.
  • Nicht initialisierte Variablen – Meldet, wenn eine Variable verwendet wird, ohne initialisiert zu werden.
  • Beide (/RTC1, equiv. zu /RTCsu) - Äquivalent von /RTCsu.
  • Standard : Standardlaufzeitüberprüfungen .

Laufzeitbibliothek

Geben Sie die Laufzeitbibliothek zur Verknüpfung an. Sets /MT, /MTd, /MD, /MDd.

Optionen

  • Multithreaded – Verursacht, dass Ihre Anwendung die multithread-, statische Version der Laufzeitbibliothek verwendet.
  • Multithread-Debug - Definiert _DEBUG und _MT. Diese Option bewirkt auch, dass der Compiler den Bibliotheksnamen LIBCMTD.lib in die .obj Datei einfügt, sodass der Linker LIBCMTD.lib zur Auflösung externer Symbole verwendet.
  • Multithread-DLL - Bewirkt, dass Ihre Anwendung die Multithread- und DLL-spezifische Version der Laufzeitbibliothek verwendet. Definiert _MT und _DLL und bewirkt, dass der Compiler den Bibliotheksnamen MSVCRT.lib in die .obj-Datei einfügt.
  • Multithread-Debug-DLL - Definiert _DEBUG, _MT, und _DLL und bewirkt, dass Ihre Anwendung die Debug-multithread- und DLL-spezifische Version der Laufzeitbibliothek verwendet. Er bewirkt außerdem, dass der Compiler den Bibliotheksnamen MSVCRTD.lib in die .obj Datei eingibt.

Strukturelementausrichtung

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).
  • 16 Byte - Packt Strukturen an 16-Byte-Grenzen.
  • Standard – Standardausrichtungseinstellungen .

Sicherheitsüberprüfung

Die Sicherheitsprüfung hilft bei der Erkennung von Überläufen des Stapelpuffers. Hierbei handelt es sich um gängige Versuche, die Sicherheit eines Programms zu gefährden.

Optionen

  • Sicherheitsüberprüfung deaktivieren: Sicherheitsüberprüfung deaktivieren. Legt fest /GS-.
  • Sicherheitsüberprüfung aktivieren: Sicherheitsüberprüfung aktivieren. Legt fest /GS.

Ablaufsteuerungsschutz

Die Guard-Sicherheitsüberprüfung hilft beim Erkennen von Versuchen, an illegale Codeblocks zu senden.

Optionen

  • Ja - Aktivieren Sie die Sicherheitsüberprüfung mit Guard-Sets /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. Beispielsweise werden die Erweiterungen SSE, SSE2, AVX und AVX2 zu IA-32 verbessert. Und die Verbesserungen von AVX und AVX2 für x64. 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-Erweiterungen – Streaming SIMD-Erweiterungen. Sätze /arch:SSE
  • Streaming SIMD Extensions 2 – Streaming SIMD Extensions 2. Garnituren /arch:SSE2
  • Erweiterte Vektorerweiterungen – Erweiterte Vektorerweiterungen. Garnituren /arch:AVX
  • Erweiterte Vektorerweiterungen 2 – Erweiterte Vektorerweiterungen 2. Garnituren /arch:AVX2
  • Keine erweiterten Anweisungen – keine erweiterten Anweisungen. Garnituren /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. Sets /fp:precise, /fp:strict, /fp:fast.

Optionen

  • Genau - Standard. Verbessert die Konsistenz von Gleitkommatests für Gleichheit und Ungleichheit.
  • Strict - Das strengste Gleitkommamodell. /fp:strict bewirkt, dass fp_contract aus ist und fenv_access ein ist. /fp:except ist impliziert und kann durch explizite Angabe /fp:except-deaktiviert werden. Bei Verwendung mit /fp:except- erzwingt /fp:strict strenge Fließkommazahlensemantik, 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

Abhilfemaßnahmen für Spectre CVE 2017-5753. Legt fest /Qspectre.

Optionen

  • Aktiviert - Spectre-Risikominderungsfunktion für CVE 2017-5753 aktiviert
  • Deaktiviert – Nicht festgelegt.

Aktivieren von Intel JCC Erratum Mitigation

Softwareminderung für die 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ücksprünge, die dabei helfen, das Springen zu illegalen Blöcken von Funktionsrückläufen zu erkennen und zu verhindern. 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 angegeben, wird der Typ wchar_t zu einem systemeigenen Typ, der auf die gleiche Weise zugeordnet __wchar_t wird, wie sie short zugeordnet __int16ist. /Zc:wchar_t ist standardmäßig aktiviert.

Konformität im Gültigkeitsbereich der For-Schleife 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 angegeben, generiert der Compiler keine Symbolinformationen mehr für nicht referenzierten Code und Daten.

Typkonvertierungsregeln erzwingen

Wird verwendet, um einen Wertverweistyp 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 vom Compiler aktivierten C++-Sprachstandard. 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 gesetzt.

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 aktiviert. 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 gesetzt.

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 . Damit können Sie import std oder import std.compat in Ihrem C++-Code ausführen.

C/C++-Eigenschaften für vorkompilierte 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 beim Erstellen oder Verwenden einer vorkompilierten Headerdatei verwendet werden soll. Sätze /Yc, /Yu.

Vorkompilierte Headerausgabedatei

Gibt den Pfad oder Namen der generierten vorkompilierten Headerdatei an. Legt fest /Fp.

Eigenschaften von C/C++-Ausgabedateien

Zugewiesene Quelle erweitern

Erstellen Sie die Eintragsdatei mit erweiterten Attributen, die in die Quelldatei eingefügt wurden. Legt fest /Fx.

Assembler-Ausgabe

Gibt die Inhalte der Ausgabedatei für die Assemblysprache an. Sets /FA, /FAc, /FAs, /FAcs

Optionen

  • Keine Auflistung - Keine Auflistung.
  • Nur Assemblyauflistung – Assemblycode; .asm
  • Assembly mit Computercode – Computer- und Assemblycode; .cod
  • Assembly mit Quellcode – Quell- und Assemblycode; .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 relativen Pfad oder Namen für die ASM-Eintragsdatei an; kann Datei- oder Verzeichnisname sein. Legt fest /Fa.

Name der Modulausgabedatei

Speicherort der Modul- oder Headereinheitsausgabe (BMI); kann 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, um den Standardnamen der Objektdatei zu überschreiben. Dies kann ein Datei- oder Verzeichnisname sein. Legt fest /Fo.

Name der Programmdatenbankdatei

Gibt einen Namen für eine compilergenerierte PDB-Datei an; gibt auch den Basisnamen für die erforderliche vom Compiler generierte IDB-Datei an; kann 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 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 die Ebene der Suchinformationen in der .bsc Datei an. Legt fest /FR.

Informationsdatei durchsuchen

Gibt optionalen Namen für die Browserinformationsdatei an. Legt den /FR<Namen fest.>

Externe C/C++-Eigenschaften

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 nicht angegeben, wird die Codeanalyseeinstellung 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, /Gr, /Gz, /Gv.

Optionen

  • __cdecl - Gibt die __cdecl Aufrufkonvention für alle Funktionen an, außer für C++-Memberfunktionen und Funktionen, die als __stdcall oder __fastcall markiert sind.
  • __fastcall - Gibt die __fastcall Aufrufkonvention für alle Funktionen an, mit Ausnahme von C++-Memberfunktionen und Funktionen, die mit __cdecl oder __stdcall markiert sind. Alle __fastcall-Funktionen müssen Prototypen haben.
  • __stdcall - Gibt die __stdcall Aufrufkonvention für alle Funktionen mit Ausnahme von C++-Memberfunktionen und Funktionen an, die mit __cdecl oder __fastcall markiert sind. Alle __stdcall-Funktionen müssen Prototypen haben.
  • __vectorcall - Gibt die __vectorcall Aufrufkonvention für alle Funktionen mit Ausnahme von C++-Memberfunktionen und -funktionen an, die als gekennzeichnet __cdeclsind, __fastcalloder __stdcall. Alle __vectorcall-Funktionen müssen Prototypen haben.

Kompilieren als

Wählen Sie die Option "Kompilierungssprache" für Quelldateien aus. Legt /TC, /TP, /interface, /internalPartition oder /exportHeader Optionen fest.

Optionen

  • Standard: die Standardeinstellung.
  • Kompilieren als C Code (/TC) – Kompilieren der angegebenen Quelldateien als C-Code. Standardmäßig werden Dateien mit einer .c Erweiterung als C kompiliert.
  • Kompilieren als C++-Code (/TP) – Kompilieren der angegebenen Quelldateien als C++-Code. Standardmäßig werden alle Quelldateien, die keine Erweiterung haben.c.ixx.cppm.h, als C++ kompiliert.
  • Kompilieren als C++-Modulcode (/interface) – Kompilieren der angegebenen Quelldateien als C++-Modulcode. Standardmäßig werden Dateien mit einer .ixx- oder .cppm-Erweiterung als 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 .h Erweiterung 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<>.

Erzwungene einzubeziehende Datei

eine oder mehrere erzwungene Include-Dateien. Legt den /FI<Namen fest.>

Erzwungene #using Datei

Gibt eine oder mehrere erzwungene #using Dateien 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

Enthält keine Standardbibliotheksnamen in .obj Dateien. 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, bei dem n eine Compilerwarnung ist.

Zusätzliche Optionen

Zusätzliche Optionen.