Freigeben über


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 .ixxund 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 #includebehandelt. 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 /Z7Compileroptionen (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, __forceinlineoder __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, /O2und /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 Bibliotheksnamen LIBCMTD.lib in die .obj Datei eingibt, sodass der Linker zum Auflösen externer Symbole verwendet LIBCMTD.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, _MTund _DLL 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 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:IA32deaktiviert 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 bewirkt fp_contract , dass "AUS" und fenv_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 __int16ist. /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 __cdeclsind, __fastcalloder __stdcall. Alle __vectorcall-Funktionen müssen Prototypen haben.

Kompilieren als

Wählen Sie die Option "Kompilierungssprache" für Quelldateien aus. Legt fest, //TPinterface, /internalPartitionoder /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.