C/C++-Eigenschaftenseiten
Die folgenden Eigenschaftenseiten finden Sie unter Project>Properties Configuration Properties>>C/C++:
Allgemeine C/C++-Eigenschaften
Zusätzliche Includeverzeichnisse
Gibt mindestens ein Verzeichnis an, das dem Includepfad 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 aufzulösen, die an eine #using
Direktive übergeben werden. 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 zum Auflösen von Namen verwendet werden sollen, die an eine import
Direktive übergeben 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 Festlegung auf "Ja" durchsucht der Compiler nicht nur Modulschnittstellen- und Headereinheitsquellen alle C++-Quellen für Modul- und Headereinheitenabhängigkeiten. 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 auf Compile as C++ Header Unit (/exportHeader) festgelegt haben, werden immer gescannt.
Übersetzen in Importe
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. /Zi
/ZI
Legt /Z7
Compileroptionen (Debuginformationsformat) fest.
Auswahlmöglichkeiten
- 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.
Nur mein Codedebugging unterstützen
Fügt Unterstützungscode zum Aktivieren des Just My Code-Debuggings in dieser Kompilierungseinheit hinzu. Legt fest /JMC
.
Common Language RunTime-Unterstützung
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.
Auswahlmöglichkeiten
- Keine Common Language RunTime-Unterstützung – keine Unterstützung für Laufzeiten für allgemeine Sprachen
- 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.
- Tresor MSIL Common Language RunTime-Unterstützung – Erzeugt eine MSIL-only (kein systemeigener ausführbarer Code) und überprüfbare Ausgabedatei.
Nutzen Windows-Runtime Erweiterung
Verwenden Sie die Windows-Laufzeitsprachenerweiterungen. Legt fest /ZW
.
Startbanner unterdrücken
Unterdrückt die Anzeige des Anmeldebanners, wenn der Compiler während der Kompilierung gestartet und angezeigt wird.
Warnstufe
Wählen Sie aus, wie streng der Compiler bei Codefehlern sein soll. Legt fest /W0
- /W4
.
Auswahlmöglichkeiten
- 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.
Warnungsversion
Ausblenden von Warnungen, die nach einer bestimmten Version des Compilers eingeführt wurden. Legt fest /Wv:xx[.yy[.zzzzz]]
.
Diagnoseformat
Ermöglicht umfangreiche Diagnose mit Spalteninformationen und Quellkontext in Diagnosenachrichten.
Auswahlmöglichkeiten
- Caret – Stellt Spalteninformationen in der Diagnosenachricht bereit. Und gibt die relevante Zeile des Quellcodes mit einem Caret aus, der die problematische Spalte angibt.
- Spalteninformationen – Stellt ggf. die Spaltennummer in der Zeile bereit, in der die Diagnose ausgestellt wird.
- Klassisch – Gibt nur die vorherigen, präzisen Diagnosemeldungen mit der Zeilennummer aus.
SDL-Prüfungen
Zusätzliche Empfohlene Überprüfungen für den Security Development Lifecycle (SDL); umfasst das Aktivieren zusätzlicher Features für die Sichere Codegenerierung und ermöglicht zusätzliche sicherheitsrelevante Warnungen als Fehler. Sets /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.
C/C++-Optimierungseigenschaften
Optimierung
Option zur Codeoptimierung auswählen; wählen Sie "Benutzerdefiniert" aus, um bestimmte Optimierungsoptionen zu verwenden. Sets /Od
, , /O2
/O1
.
Auswahlmöglichkeiten
- 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 die Ebene der Inlinefunktionserweiterung für den Build aus. Legt fest /Ob
.
Auswahlmöglichkeiten
- Standard
- Deaktiviert – Deaktiviert die Inlineerweiterung, die standardmäßig aktiviert ist.
- Nur __inline – Erweitert nur Funktionen, die als
inline
,__forceinline
oder__inline
. Oder in einer C++-Memberfunktion, die in einer Klassendeklaration definiert ist. - Any Suitable - Expands functions marked as
inline
or__inline
and any other function that the compiler chooses. (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. Sets /Ot
, /Os
.
Auswahlmöglichkeiten
- 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 Framezeigern im Anrufstapel.
Aktivieren von Fiber-Tresor 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 mindestens eine aufgehobene Präprozessordefinition an. Legt fest /U
.
Alle Präprozessordefinitionen aufheben
Hebt die Definition aller zuvor definierten Präprozessorwerte auf. Legt fest /u
.
Standardeinschließpfade 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 erzeugt .obj
keine Datei.
Vorverarbeitungsunterdrückung von Zeilennummern
Vorverarbeitung ohne #line Direktiven.
Kommentare beibehalten
Unterdrückt den Kommentarstreifen aus dem Quellcode; erfordert, dass mindestens eine der Vorverarbeitungsoptionen festgelegt wird. Legt fest /C
.
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 Sie die Option automatisch fest /GF
.
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.
Auswahlmöglichkeiten
- 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 , , /RTC1
/RTCu
./RTCs
Auswahlmöglichkeiten
- Stack Frames – Aktiviert die Laufzeitüberprüfung des Stapelframes.
- 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
Dient zum Angeben der zu verknüpfenden Laufzeitbibliothek. Sets /MT
, , /MD
/MTd
, . /MDd
Auswahlmöglichkeiten
- Multithreads – Bewirkt, dass Ihre Anwendung die Multithread-, statische Version der Laufzeitbibliothek verwendet.
- Multithread-Debug - Definiert
_DEBUG
und_MT
. Diese Option bewirkt auch, dass der Compiler den BibliotheksnamenLIBCMTD.lib
in die.obj
Datei eingibt, sodass der Linker zum Auflösen externer Symbole verwendetLIBCMTD.lib
. - Multithread-DLL - Bewirkt, dass Ihre Anwendung die Multithread- und DLL-spezifische Version der Laufzeitbibliothek verwendet.
_MT
Definiert und_DLL
bewirkt, dass der Compiler den Bibliotheksnamen MSVCRT.lib in die.obj
Datei einzufügen. - Multithreaded Debug DLL - Definiert
_DEBUG
,_MT
und_DLL
bewirkt, dass Ihre Anwendung die Debug Multithread- und DLL-spezifische Version der Laufzeitbibliothek verwendet. Er bewirkt außerdem, dass der Compiler den BibliotheksnamenMSVCRTD.lib
in die.obj
Datei eingibt.
Strukturelementausrichtung
Gibt die Begrenzungen 1, 2, 4 oder 8 Byte für die Ausrichtung von Strukturmemempfungen an. Legt fest /Zp
.
Auswahlmöglichkeiten
- 1 Byte - Packt Strukturen auf 1-Byte-Begrenzungen. 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-Begrenzungen (Standard).
- 16 Byte - Packt Strukturen auf sechzehn 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.
Auswahlmöglichkeiten
- 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.
Auswahlmöglichkeiten
- Ja - Aktivieren Sie die Sicherheitsüberprüfung mit Guard-Sätzen
/guard:cf
. - Nein
Funktionslevel-Linking aktivieren
Ermöglicht dem Compiler, einzelne Funktionen in Form von kompilierten Funktionen (COMDATs) zu kompilieren. Zur Bearbeitung erforderlich, funktionieren weiterhin. Legt fest /Gy
.
Parallele Codegenerierung aktivieren
Ermöglicht dem Compiler, parallelen Code für Schleifen zu generieren, die verwendet #pragma loop(hint_parallel[(n)])
werden, wenn die Optimierung aktiviert ist.
Erweiterte Anweisungssatz 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. Außerdem werden die Verbesserungen von AVX und AVX2 auf x64 verbessert. Derzeit /arch:SSE
und /arch:SSE2
nur beim Erstellen der 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:IA32
deaktiviert werden. Weitere Informationen finden Sie unter/arch (x86)
, /arch (x64)
, /arch (ARM64)
und /arch (ARM)
.
Auswahlmöglichkeiten
- Streaming SIMD-Erweiterungen – Streaming SIMD-Erweiterungen. Legt
/arch:SSE
- Streaming SIMD Extensions 2 – Streaming SIMD Extensions 2. Legt
/arch:SSE2
- Erweiterte Vektorerweiterungen – Erweiterte Vektorerweiterungen. Legt
/arch:AVX
- Erweiterte Vektorerweiterungen 2 – Erweiterte Vektorerweiterungen 2. Legt
/arch:AVX2
- Keine erweiterten Anweisungen – keine erweiterten Anweisungen. Legt
/arch:IA32
- Not Set - Not Set.
Gleitkommamodell
Legt das Gleitkommamodell fest. Sets , , /fp:fast
/fp:strict
./fp:precise
Auswahlmöglichkeiten
- Genau - Standard. Verbessert die Konsistenz von Gleitkommatests für Gleichheit und Ungleichheit.
- Strict - Das strengste Gleitkommamodell.
/fp:strict
dies bewirktfp_contract
, dass "AUS" undfenv_access
"EIN" ist./fp:except
ist impliziert und kann durch explizite Angabe/fp:except-
deaktiviert werden. Bei Verwendung mit/fp:except-
,/fp:strict
erzwingt strenge Gleitkommasemantik, jedoch ohne Rücksicht auf außergewöhnliche Ereignisse. - Schnell – Erstellt den schnellsten Code in den meisten Fällen.
Aktivieren von Gleitkomma-Ausnahmen
Verlässliches Modell für Gleitkommaausnahmen. Ausnahmen werden unmittelbar nach dem Auslösen ausgelöst. Legt fest /fp:except
.
Hotpatchable Image erstellen
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 Mitigation
Spezifikationsminderungen für CVE 2017-5753. Legt fest /Qspectre
.
Auswahlmöglichkeiten
- Aktiviert – Feature zur Risikominderung für CVE 2017-5753 aktivieren
- Deaktiviert – Nicht festgelegt.
C/C++-Spracheigenschaften
Spracherweiterungen deaktivieren
Unterdrückt oder aktiviert Spracherweiterungen. Legt fest /Za
.
Behandeln von WChar_t als integriert
Wenn angegeben, wird der Typ wchar_t
zu einem systemeigenen Typ, der auf die gleiche Weise zugeordnet __wchar_t
wird, wie sie short
zugeordnet __int16
ist. /Zc:wchar_t
ist standardmäßig aktiviert.
Erzwingen der Konformität im Bereich "Schleife"
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.
Laufzeit-Typeninformation aktivieren
Fügt Code zum Überprüfen von C++-Objekttypen zur Laufzeit hinzu (Laufzeittypinformationen oder RTTI). Sets /GR
, /GR-
.
Mp-Unterstützung öffnen
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, ist die entsprechende /std
Compileroption set.md).
Auswahlmöglichkeiten
- 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 – 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, ist die entsprechende /std
Compileroption set.md).
Auswahlmöglichkeiten
- Standard (Legacy MSVC)
- ISO C11 Standard (/std:c11)
- ISO C17 (2018) Standard (/std:c17)
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 werden visual C++-Projekte automatisch nach ISO C++23 Standardbibliotheksmodulen gesucht und erstellt, wenn diese Eigenschaft aktiviert ist und C++-Sprachstandardstandard festgelegt ist /std:c++latest
. Auf diese Weise können Sie import std
oder import std.compat
in Ihrem C++-Code arbeiten.
C/C++-Eigenschaften vorkompilierte Header
Vorkompilierte Kopfzeile erstellen/verwenden
Ermöglicht die Erstellung oder Verwendung eines vorkompilierten Headers während der Erstellung. Sets /Yc
, /Yu
.
Auswahlmöglichkeiten
- 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. Sets /Yc
, /Yu
.
Vorkompilierte Headerausgabedatei
Gibt den Pfad oder Namen der generierten vorkompilierten Headerdatei an. Legt fest /Fp
.
Eigenschaften von C/C++-Ausgabedateien
Attributquelle erweitern
Erstellen Sie die Eintragsdatei mit erweiterten Attributen, die in die Quelldatei eingefügt wurden. Legt fest /Fx
.
Assemblyausgabe
Gibt die Inhalte der Ausgabedatei für die Assemblysprache an. Sets /FA
, , /FAs
/FAc
, . /FAcs
Auswahlmöglichkeiten
- No Listing - No listing - No listing.
- Nur Assemblyauflistung – Assemblycode;
.asm
- Assembly mit Computercode – Computer- und Assemblycode;
.cod
- Assembly mit Quellcode – Quellcode 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 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.>
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 Includes
Behandeln von Dateien, die in winkeln Klammern enthalten sind, als extern
Gibt an, ob Dateien, die in winkeln 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 "Projektwarnungsstufe erben" oder "Standard" festgelegt ist, werden andere /external
Optionen ignoriert.
Vorlagendiagnose in externen Headern
Gibt an, ob die Warnstufe in einer Vorlageninstanzeninstanzenkette 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.
Analysis Ruleset für externe Header
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
, , /Gz
/Gr
, . /Gv
Auswahlmöglichkeiten
__cdecl
- Gibt die__cdecl
Aufrufkonvention für alle Funktionen mit Ausnahme von C++-Memberfunktionen und -funktionen an, die markiert oder markiert__stdcall
sind__fastcall
.__fastcall
- Gibt die__fastcall
Aufrufkonvention für alle Funktionen mit Ausnahme von C++-Memberfunktionen und -funktionen an, die markiert oder markiert__cdecl
sind__stdcall
. 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 markiert oder markiert__cdecl
sind__fastcall
. 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__cdecl
sind,__fastcall
oder__stdcall
. Alle__vectorcall
-Funktionen müssen Prototypen haben.
Kompilieren als
Wählen Sie die Option "Kompilierungssprache" für Quelldateien aus. Legt fest, //TP
interface, /internalPartition
oder /exportHeader
Optionen./TC
Auswahlmöglichkeiten
- 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
Erweiterung.cppm
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 Zahl fest/wd
<>.
Erzwungene Include-Datei
eine oder mehrere explizite Includedateien. Legt den /FI
<Namen fest.>
Erzwungene #using Datei
Gibt eine oder mehrere erzwungene #using Dateien an. Legt den /FU
<Namen fest.>
Includedateien anzeigen
Generiert eine Liste der Includedateien mit 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
.
Bericht für interne 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.