Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Följande egenskapssidor finns underKonfigurationsegenskaper för>projektegenskaper>>C/C++:
Allmänna egenskaper för C/C++
Ytterligare inkludera kataloger
Anger en eller flera kataloger som ska läggas till i inkluderingssökvägen. Avgränsa kataloger med semikolon (;) om det finns fler än en. Ställer in kompilatoralternativet /I (Ytterligare inkluderingskataloger)
Ytterligare #using kataloger
Specificerar en eller flera kataloger att söka igenom för att matcha namn som skickas till ett #using direktiv. Avgränsa kataloger med semikolon (;) om du lägger till fler än en. Anger kompilatoralternativet /AI .
Ytterligare BMI-kataloger
Anger en eller flera kataloger för sökning för att matcha namn som skickas till ett import direktiv. Avgränsa kataloger med semikolon (;) om du lägger till fler än en. Anger kompilatoralternativet /ifcSearchDir[path] .
Ytterligare modulberoenden
Anger en eller flera moduler som ska användas för att matcha namn som skickas till ett import direktiv. Avgränsa kataloger med semikolon (;) om du lägger till fler än en. Anger kompilatoralternativet /reference .
Ytterligare beroenden för rubrikenhet
Anger en eller flera huvudenheter som ska användas för att lösa namn som skickas till ett import huvuddirektiv. Avgränsa kataloger med semikolon (;) om du lägger till fler än en. Anger kompilatoralternativet /headerUnit .
Sök igenom källor efter modulberoenden
När den här egenskapen är inställd på Ja söker kompilatorn igenom alla C++-källor, inte bara modulgränssnitts- och huvudenhetskällor, efter beroenden för modul- och rubrikenheter. Byggsystemet skapar diagrammet med fullständiga beroenden, vilket säkerställer att alla importerade moduler och rubrikenheter skapas innan de filer som är beroende av dem kompileras. När Skanna källor efter modulberoenden och Översätt include-direktiv till importer båda är inställda på Ja, kompileras alla huvudfiler som anges i en header-units.json-fil i samma katalog som huvudfilen till en huvudenhet.
Filer som har filnamnstillägget .ixx, och filer vars Filegenskaper>C/C++>Avancerat>Kompilera som-egenskapen är inställd på Kompilera som C++-huvudenhet (/exportHeader), genomsöks alltid.
Filer som har tillägget .ixx, och filer som har filens egenskaper>C/C++>kompilera som-egenskapen inställd på kompilera som C++-huvudenhet (/exportHeader), genomsöks alltid.
Översätt inklusioner till importeringar
När den här egenskapen är inställd på Ja behandlar kompilatorn ett #include direktiv som ett import direktiv om vissa villkor uppfylls: Huvudfilen anges i en header-units.json fil i samma katalog och en kompilerad rubrikenhet (en .ifc fil) är tillgänglig för huvudfilen. Annars behandlas rubrikfilen som en vanlig #include. Filen header-units.json används för att skapa rubrikenheter för var och en #include utan symbolduplicering. När Translate Includes to Imports och Scan Sources for Module Dependencies båda är inställda på Ja, hittar kompilatorn automatiskt alla headerfiler som kan kompileras till header-enheter. Den här egenskapen anger kompilatoralternativet /translateInclude .
Felsök informationsformat
Anger vilken typ av felsökningsinformation som genereras av kompilatorn. Den här egenskapen kräver kompatibla länkningsinställningar. Anger kompileringsalternativen , /Z7, /Zi (felsökningsinformationsformat)./ZI
Choices
-
Ingen (
None) – Genererar ingen felsökningsinformation, så kompilering kan gå snabbare. -
C7-kompatibel (
OldStyle) – Genererar objektfiler som innehåller fullständig symbolisk felsökningsinformation. Ingen PDB-fil skapas. -
Programdatabas (
ProgramDatabase) – Skapar en programdatabas (PDB) som innehåller typinformation och symbolisk felsökningsinformation för användning med felsökningsprogrammet. Den symboliska felsökningsinformationen innehåller namn och typer av variabler och funktioner samt radnummer. -
Programdatabas för redigera och fortsätt (
EditAndContinue) – Skapar en programdatabas, enligt beskrivningen tidigare, i ett format som stöder funktionen Redigera och Fortsätt .
Stöd för Just My Code-felsökning
Lägger till stödkod för att aktivera felsökning av Just My Code i den här kompileringsenheten. Anger /JMC.
Stöd för dynamisk felsökning i C++
(Förhandsversion) Anger att kompilatorflaggan /dynamicdeopt ska aktivera dynamisk C++-felsökning. Placera avoptimerade brytpunkter och gå in var som helst med funktionsdeoptimisering på begäran. Använd det här läget för felsökning av optimerad kod.
Stöd för Common Language RunTime
Använd .NET-körtidstjänsten. Den här växeln är inte kompatibel med vissa andra växlar. Mer information finns i dokumentationen om /clr familjen med växlar.
Choices
- Inget stöd för Common Language RunTime – inget stöd för Common Language Runtime.
- Stöd för Common Language RunTime – Skapar metadata för ditt program som kan användas av andra CLR-program. Gör också att ditt program kan använda typer och data i metadata för andra CLR-komponenter.
- Pure MSIL Common Language RunTime Support – Genererar en MSIL-endast utdatafil utan inbyggd körbar kod, även om den kan innehålla inbyggda typer som kompilerats till MSIL.
- Säkert stöd för MSIL Common Language Runtime – Genererar endast MSIL (ingen native körbar kod) och verifierbar resultatfil.
Använda Windows Runtime-tillägget
Använd språktilläggen för Windows Runtime. Anger /ZW.
Undertryck startbanderoll
Undertrycker visning av inloggningsbanderollen när kompilatorn startar och visar informationsmeddelanden under kompileringen.
Varningsnivå
Välj hur strikt du vill att kompilatorn ska vara angående kodfel. Anger /W0 - /W4.
Choices
- Inaktivera Alla varningar – Nivå 0 inaktiverar alla varningar.
- Nivå1 – Nivå 1 visar allvarliga varningar. Nivå 1 är standardvarningsnivån på kommandoraden.
- Nivå 2 – Nivå 2 visar alla varningar och varningar på nivå 1 som är mindre allvarliga än nivå 1.
- Nivå 3 – Nivå 3 visar alla varningar på nivå 2 och alla andra varningar som rekommenderas i produktionssyfte.
- Nivå 4 – Nivå 4 visar alla varningar på nivå 3 och informationsvarningar, som i de flesta fall kan ignoreras på ett säkert sätt.
- EnableAllWarnings – Aktiverar alla varningar, inklusive de som är inaktiverade som standard.
Behandla varningar som fel
Behandlar kompilatorvarningar som fel. För ett nytt projekt kan det vara bäst att använda /WX i varje kompilering. Lös alla varningar för att minimera kodfel som är svåra att hitta.
Varningsversion
Dölj varningar som introducerats efter en viss version av kompilatorn. Anger /Wv:xx[.yy[.zzzzz]].
Diagnostikformat
Möjliggör omfattande diagnostik med kolumninformation och källkontext i diagnostikmeddelanden.
Choices
- Caret – Innehåller kolumninformation i diagnostikmeddelandet. Skriver även ut den relevanta raden med källkod med ett cirkumflextecken som markerar den felaktiga kolumnen.
- Kolumninformation – Innehåller dessutom kolumnnumret på raden där diagnostiken utfärdas, i förekommande fall.
- Klassisk – Visar endast tidigare, koncisa diagnostiska meddelanden med radnummer.
SDL-kontrolleringar
Ytterligare SDL-rekommenderade kontroller (Security Development Lifecycle). Inkluderar att aktivera ytterligare funktioner för säker kodgenerering och att behandla extra säkerhetsrelevanta varningar som fel. Ställer in /sdl, /sdl-.
Kompilering med flera processorer
Aktivera kompilering med flera processorer. Anger kompilatoralternativet /MP .
Aktivera AddressSanitizer
Kompilerar och länkar programmet med AddressSanitizer-instrumentation. Den här egenskapen stöder för närvarande x86- och x64-målversioner. Anger kompilatoralternativet /fsanitize .
Aktivera Fuzzer-stöd (experimentellt)
Kompilerar program med Fuzzer. Aktivera AddressSanitizer för bästa resultat. Finns för närvarande för x86- och x64-versioner. Anger /fsanitize=fuzzer.
Egenskaper för C/C++-optimering
Optimization
Välj ett alternativ för kodoptimering. Välj Anpassad för att använda specifika optimeringsalternativ. Anger /Od, /O1, /O2.
Choices
- Anpassad – Anpassad optimering.
- Avaktiverad – Avaktivera optimering.
-
Maximal optimering (förmånsstorlek) – motsvarar
/Os /Oy /Ob2 /Gs /GF /Gy. -
Maximal optimering (prioritera hastighet) – motsvarar
/Oi /Ot /Oy /Ob2 /Gs /GF /Gy. -
Optimeringar (favorhastighet) – motsvarar
/Oi /Ot /Oy /Ob2.
Inline-funktionsexpansion
Välj nivån för den infogade funktionsexpansionen för bygget. Anger /Ob.
Choices
- Standardinställning
- Inaktiverat – Inaktiverar infogad expansion, vilket är aktiverat som standard.
-
Endast __inline – expanderar endast funktioner som har markerats som
inline,__forceinlineeller__inline. Eller i en C++-medlemsfunktion som definierats i en klassdeklaration. -
Any Suitable – expanderar funktioner som markerats som
inlineeller__inlineoch andra funktioner som kompilatorn väljer. (Expandering sker enligt kompilatorns bedömning. Denna kompilatorvalda expandering kallas ofta autoinlining.)
Aktivera inbyggda funktioner
Aktiverar inbyggda funktioner. Att använda inbyggda funktioner genererar snabbare men möjligen större kod. Anger /Oi.
Favoritstorlek eller hastighet
Om kodstorlek eller kodhastighet ska gynnas.
Global Optimization måste aktiveras. Ställer in /Ot, /Os.
Choices
- Prioritera liten kod – Minimerar storleken på EXE:er och DLL:er genom att instruera kompilatorn att prioritera storlek framför hastighet.
- Prioritera snabb kod – Maximerar hastigheten för EXE:er och DLL:er genom att instruera kompilatorn att prioritera hastighet framför storlek. (Det här värdet är standardvärdet när optimeringar är aktiverade.)
- Varken – Ingen storleks- och hastighetsoptimering.
Utelämna stackpekare
Undertrycker skapandet av bildrutepekare i anropsstacken.
Aktivera Fiber-Safe optimeringar
Möjliggör fibersäkra optimeringar för program som använder fibrer för att få åtkomst till trådlokal lagring. Anger /GT.
Optimering av hela programmet
Aktiverar optimeringar mellan moduler genom att fördröja kodgenereringen till länktiden. Kräver länkalternativet Länktidskodgenerering. Anger /GL.
Egenskaper för C/C++ Preprocessor
Definitioner för förprocessor
Definierar förbearbetningssymboler för källfilen.
Odefiniera förprocessordefinitioner
Anger en eller flera förprocessorer som är odefinierade. Anger /U.
Odefiniera alla förprocessordefinitioner
Avdefinierar alla tidigare definierade förprocessorvärden. Anger /u.
Ignorera standardsökvägar för inkludering
Hindrar kompilatorn från att söka efter inkluderingsfiler i kataloger som anges i MILJÖvariablerna INCLUDE.
Förbearbeta till en fil
Förbearbetar C- och C++-källfiler och skriver förbearbetade utdata till en fil. Det här alternativet undertrycker kompilering och skapar ingen .obj-fil.
Förbehandla dölja radnummer
Förbearbeta utan ett #line direktiv.
Behåll kommentarer
Aktivera det här alternativet om du vill bevara C- och C++-källkommentar (// och /* ... */) i .i filer och andra utdata från förprocessorn. Förprocessorn tar bort kommentarer som standard.
Kräver att du anger minst ett av förbearbetningsalternativen . Anger /C.
Använd en standardenlig förprocessor
Använd en standardenlig förbehandlare (/Zc:preprocessor). För närvarande underförstådd av /std:c11 och senare versioner. Om du vill använda den äldre förprocessorn anger du den här egenskapen till Nej.
Egenskaper för C/C++-kodgenerering
Aktivera strängpooler
Aktivera den här egenskapen för att aktivera strängpooler, som kombinerar identiska strängar till en skrivskyddad kopia i det kompilerade programmet. Detta kan resultera i mindre program.
/O1, /O2och /ZI ställer automatiskt in alternativet /GF .
Aktivera minimal ombyggnad
Möjliggör minimal återskapande, vilket avgör om C++-källfiler som innehåller huvudfiler (.h) som innehåller ändrade C++-klassdefinitioner ska kompileras om.
Aktivera C++-undantag
Anger vilken modell av undantagshantering som ska användas av kompilatorn.
Choices
-
Ja med SEH-undantag – undantagshanteringsmodellen som fångar asynkrona (strukturerade) och synkrona undantag (C++). Anger
/EHa. -
Ja – Undantagshanteringsmodellen som endast fångar upp C++-undantag och konfigurerar kompilatorn att anta att
extern "C"funktioner aldrig utlöser ett C++-undantag. Anger/EHsc. -
Ja med Externa C-funktioner – Undantagshanteringsmodellen som endast fångar C++-undantag och konfigurerar kompilatorn att anta att
extern "C"funktioner utlöser ett undantag. Anger/EHs. - Nej – Ingen undantagshantering.
Kontroll av mindre typ
Möjliggör kontroll av konvertering till mindre datatyper. Inte kompatibel med någon annan optimeringstyp än felsökning. Anger /RTCc.
Grundläggande körningskontroller
Aktiverar grundläggande körningsfelkontroller. Inte kompatibel med någon annan optimeringstyp än felsökning. Ställer in /RTCs, /RTCu, /RTC1.
Choices
- Stack Frames - Aktiverar felkontroll av stack frames vid körning.
- Uninitialiserade variabler – Rapporterar när en variabel används utan att ha initierats.
-
Både (/RTC1, equiv. till /RTCsu) – motsvarande
/RTCsu. - Standard – Standardkörningskontroller.
Körtidsbibliotek
Anger ett körningsbibliotek för länkning. Sätter /MT, /MTd, /MD, /MDd.
Choices
- Multitrådad – Gör att programmet använder den multitrådade, statiska versionen av körningsbiblioteket.
-
Felsökning med flera trådar – Definierar
_DEBUGoch_MT. Det här alternativet gör också att kompilatorn placerar biblioteksnamnet LIBCMTD.lib i.objfilen så att länkaren använderLIBCMTD.libför att matcha externa symboler. -
Multitrådad DLL – Gör att ditt program använder den DLL-specifika, flertrådade versionen av körningsbiblioteket. Definierar
_MToch_DLLoch gör att kompilatorn placerar biblioteksnamnet MSVCRT.lib i.obj-filen. -
DLL för flertrådad felsökning – definierar
_DEBUG,_MToch och_DLLgör att ditt program använder felsöknings-, DLL-specifik, flertrådad version av körningsbiblioteket. Det gör också att kompilatorn placerar biblioteksnamnet MSVCRTD.lib i.objfilen.
Struct-medlemsjustering
Anger bytegränser på 1, 2, 4, 8 eller 16 byte för justering av strukturmedlemmar. Anger /Zp.
Choices
-
1 byte – Packar strukturer på en bytes gränser. Samma som
/Zp. - 2 byte: Packar strukturer på två byte-gränser.
- 4 byte – Packar strukturer på fyra bytes gränser.
- 8 byte – Packar strukturer på åtta bytes gränser (standard).
- 16 byte – Packar strukturer på sextonbytesgränser.
- Standard – Standardjusteringsinställningar.
Anger 1, 2, 4 eller 8-bytegränser för anpassning av strukturmedlemmar. Anger /Zp.
Choices
-
1 byte – Packar strukturer på en bytes gränser. Samma som
/Zp. - 2 byte: Packar strukturer på två byte-gränser.
- 4 byte – Packar strukturer på fyra bytes gränser.
- 8 byte – Packar strukturer på åtta bytes gränser (standard).
- Standard – Standardjusteringsinställningar.
Säkerhetskontroll
Hjälper till att identifiera stackbuffertsöverskridanden, som angripare kan utnyttja för att kompromettera ditt program.
Choices
Kontrollera Flow Guard
Hjälper till att identifiera försök att skicka till olagliga kodblock.
Choices
-
Ja – Aktivera Control Flow Guard. Anger
/guard:cf. - No
Aktivera länknivå för funktioner
Gör att kompilatorn kan paketera enskilda funktioner i form av paketerade funktioner (COMDAT). Krävs för att redigera och fortsätta att fungera. Anger /Gy.
Aktivera parallell kodgenerering
Möjliggör för kompilatorn att generera parallell kod för loopar som identifieras med #pragma loop(hint_parallel[(n)]) när optimering är aktiverad.
Aktivera förbättrad instruktionsuppsättning
Aktivera användning av instruktioner som finns på processorer som stöder förbättrade instruktionsuppsättningar. Till exempel förbättringarna av SSE, SSE2, AVX och AVX2 till IA-32 samt förbättringarna av AVX och AVX2 till x64.
/arch:SSE är endast tillgängligt för x86-versioner.
/arch:SSE2 är tillgängligt för x86- och x64-versioner och är standard för båda arkitekturerna. Användning av förbättrade instruktioner kan inaktiveras med /arch:IA32. Mer information finns i /arch (x86), /arch (x64), /arch (ARM64)och /arch (ARM).
Choices
-
Streaming SIMD Extensions (X86) – Aktiverar Streaming SIMD Extensions. Anger
/arch:SSE. -
Streaming SIMD Extensions 2 (X86) – Aktiverar Streaming SIMD Extensions 2. Anger
/arch:SSE2. -
Avancerade vektortillägg (X86/X64) – Aktiverar avancerade vektortillägg. Anger
/arch:AVX. -
Advanced Vector Extensions 2 (X86/X64) – Aktiverar avancerade vektortillägg 2. Anger
/arch:AVX2. -
Avancerade vektortillägg 512 (X86/X64) – Aktiverar avancerade vektortillägg 512. Anger
/arch:AVX512. -
Advanced Vector Extensions AVX10.1 (X86/X64) – Aktiverar Avancerade vektortillägg 10 version 1. Anger
/arch:AVX10.1. -
Advanced Vector Extensions AVX10.2 (X86/X64) – Aktiverar Avancerade vektortillägg 10 version 2. Anger
/arch:AVX10.2. -
Virtualiseringstillägg (ARM). Aktiverar ARM-virtualiseringstillägg. Anger
/arch:ARMv7VE. -
ARM VFPv4-instruktioner (ARM). Aktiverar INSTRUKTIONER för ARM VFPv4. Anger
/arch:VFPv4. -
Krav för CPU-tillägg ARMv8.0-A (ARM64). Aktiverar krav för ARMv8.0-A. Anger
/arch:arm8.0. -
Krav för CPU-tillägg ARMv8.1-A (ARM64). Aktiverar krav för ARMv8.1-A. Anger
/arch:arm8.1. -
Krav för CPU-tillägg ARMv8.2-A (ARM64). Aktiverar ARMv8.2-A-krav. Anger
/arch:arm8.2. -
Krav för CPU-tillägg ARMv8.3-A (ARM64). Aktiverar krav för ARMv8.3-A. Anger
/arch:arm8.3. -
Krav för CPU-tillägg ARMv8.4-A (ARM64). Aktiverar krav för ARMv8.4-A. Anger
/arch:arm8.4. -
Krav för CPU-tillägg ARMv8.5-A (ARM64). Aktiverar krav för ARMv8.5-A. Anger
/arch:arm8.5. -
Krav för CPU-tillägg ARMv8.6-A (ARM64). Aktiverar ARMv8.6-A-krav. Anger
/arch:arm8.6. -
Krav för CPU-tillägg ARMv8.7-A (ARM64). Aktiverar krav för ARMv8.7-A. Anger
/arch:arm8.7. -
Krav för CPU-tillägg ARMv8.8-A (ARM64). Aktiverar krav för ARMv8.8-A. Anger
/arch:arm8.8. -
Inga förbättrade instruktioner – Inaktiverar förbättrade instruktioner för x86-versioner. Anger
/arch:IA32. -
Inte inställd – Anger inte uttryckligen ett
/archalternativ.
Aktivera användning av instruktioner som finns på processorer som stöder förbättrade instruktionsuppsättningar. Till exempel förbättringarna av SSE, SSE2, AVX och AVX2 till IA-32 samt förbättringarna av AVX och AVX2 till x64. För närvarande /arch:SSE och /arch:SSE2 är endast tillgängliga när du skapar för x86-arkitekturen. Om inget alternativ anges använder kompilatorn instruktioner som finns på processorer som stöder SSE2. Användning av förbättrade instruktioner kan inaktiveras med /arch:IA32. Mer information finns i /arch (x86), /arch (x64), /arch (ARM64)och /arch (ARM).
Choices
-
Streaming SIMD Extensions (X86) – Aktiverar Streaming SIMD Extensions. Anger
/arch:SSE. -
Streaming SIMD Extensions 2 (X86) – Aktiverar Streaming SIMD Extensions 2. Anger
/arch:SSE2. -
Avancerade vektortillägg (X86/X64) – Aktiverar avancerade vektortillägg. Anger
/arch:AVX. -
Advanced Vector Extensions 2 (X86/X64) – Aktiverar avancerade vektortillägg 2. Anger
/arch:AVX2. -
Avancerade vektortillägg 512 (X86/X64) – Aktiverar avancerade vektortillägg 512. Anger
/arch:AVX512. -
Advanced Vector Extensions AVX10.1 (X86/X64) – Aktiverar Avancerade vektortillägg 10 version 1. Anger
/arch:AVX10.1. -
Virtualiseringstillägg (ARM). Aktiverar ARM-virtualiseringstillägg. Anger
/arch:ARMv7VE. -
ARM VFPv4-instruktioner (ARM). Aktiverar INSTRUKTIONER för ARM VFPv4. Anger
/arch:VFPv4. -
Krav för CPU-tillägg ARMv8.0-A (ARM64). Aktiverar krav för ARMv8.0-A. Anger
/arch:arm8.0. -
Krav för CPU-tillägg ARMv8.1-A (ARM64). Aktiverar krav för ARMv8.1-A. Anger
/arch:arm8.1. -
Krav för CPU-tillägg ARMv8.2-A (ARM64). Aktiverar ARMv8.2-A-krav. Anger
/arch:arm8.2. -
Krav för CPU-tillägg ARMv8.3-A (ARM64). Aktiverar krav för ARMv8.3-A. Anger
/arch:arm8.3. -
Krav för CPU-tillägg ARMv8.4-A (ARM64). Aktiverar krav för ARMv8.4-A. Anger
/arch:arm8.4. -
Krav för CPU-tillägg ARMv8.5-A (ARM64). Aktiverar krav för ARMv8.5-A. Anger
/arch:arm8.5. -
Krav för CPU-tillägg ARMv8.6-A (ARM64). Aktiverar ARMv8.6-A-krav. Anger
/arch:arm8.6. -
Krav för CPU-tillägg ARMv8.7-A (ARM64). Aktiverar krav för ARMv8.7-A. Anger
/arch:arm8.7. -
Krav för CPU-tillägg ARMv8.8-A (ARM64). Aktiverar krav för ARMv8.8-A. Anger
/arch:arm8.8. -
Inga förbättrade instruktioner – Inaktiverar förbättrade instruktioner för x86-versioner. Anger
/arch:IA32. -
Inte inställd – Anger inte uttryckligen ett
/archalternativ.
Choices
-
Streaming SIMD Extensions – Streaming SIMD Extensions. Uppsättningar
/arch:SSE -
Streaming SIMD Extensions 2 – Streaming SIMD Extensions 2. Uppsättningar
/arch:SSE2 -
Avancerade vektortillägg – Avancerade vektortillägg. Uppsättningar
/arch:AVX -
Avancerade vektortillägg 2 – Avancerade vektortillägg 2. Uppsättningar
/arch:AVX2 -
Inga förbättrade instruktioner – inga förbättrade instruktioner. Uppsättningar
/arch:IA32 - Inte inställt – inte inställt.
Aktivera vektorlängd
Aktivera val av vektorlängd för /arch:AVX512 och /arch:AVX10.x flaggor. Tillåtna värden är 256 och 512 bitar (X86/X64).
Flyttalsmodell
Anger flyttalsmodellen. Ställer in /fp:precise, /fp:strict, /fp:fast.
Choices
- Exakt – standard. Förbättrar konsekvensen i flyttalstester för likhet och ojämlikhet.
-
Strikt – Den striktaste flyttalsmodellen.
/fp:strictgör attfp_contractär avstängd ochfenv_accessär på./fp:exceptär underförstådd och kan inaktiveras genom att/fp:except-uttryckligen ange . När det används med/fp:except-, tvingar/fp:strictfram strikt flyttalssemantik men utan hänsyn till exceptionella händelser. - Snabb – Skapar den snabbaste koden i de flesta fall.
Aktivera flyttalsundantag
Tillförlitlig flyttalsundantagsmodell. Undantag utlöses omedelbart efter att de har utlösts. Anger /fp:except.
Skapa snabbkorrigeringsbar avbildning
När hotpatching är på ser kompilatorn till att den första instruktionen för varje funktion är två byte, vilket krävs för snabbkorrigering. Anger /hotpatch.
Åtgärder mot Spectre
Spectre-mitigeringar för CVE 2017-5753. Anger /Qspectre.
Choices
- Aktiverad – Aktivera Spectre-minskning för CVE 2017-5753.
- Alla belastningar – Aktivera Spectre-åtgärd vid alla belastningar.
- Alla kontrollflödesbelastningar – Aktivera Spectre-minskning vid kontrollflödesbelastningar.
- Inaktiverad – Inte inställd.
Åtgärder mot Spectre
Spectre-mitigeringar för CVE 2017-5753. Anger /Qspectre.
Choices
- Aktiverad – Aktivera Spectre-minskning för CVE 2017-5753.
- Inaktiverad – Inte inställd.
Aktivera Intel JCC Erratum Mitigation
Programreducering för prestandapåverkan som orsakas av Intel JCC erratum-mikrokodsuppdateringen. Anger /QIntel-jcc-erratum.
Aktivera EH-fortsättningsmetadata
Genererar en sorterad lista över alla giltiga målpunkter för undantagshanteringens fortsättning för en binär, som används under körning för validering av RIP. För närvarande tillgängligt för x64-versioner. Anger /guard:ehcont.
Aktivera signerade returer
Aktiverar signerade returer som hjälper till att identifiera och förhindra försök att skicka till olagliga block från funktionsreturer. För närvarande tillgängligt för ARM64-versioner. Anger /guard:signret.
Egenskaper för C/C++-språk
Inaktivera språktillägg
Undertrycker eller aktiverar språktillägg. Anger /Za.
Behandla WChar_t som inbyggd typ
När du aktiverar den här egenskapen blir typen wchar_t en intern typ som mappar till __wchar_t på samma sätt som short mappar till __int16.
/Zc:wchar_t är aktiverat som standard.
Framtvinga efterlevnad i för loopomfång
Implementerar C++-standardbeteende för for instruktionsloopar med Microsoft-tillägg. Anger /Za, /Ze (Inaktivera språktillägg.
/Zc:forScope är aktiverat som standard.
Ta bort orefererad kod och data
När du aktiverar den här egenskapen genererar kompilatorn inte längre symbolinformation för orefererad kod och data.
Framtvinga typkonverteringsregler
Används för att identifiera en rvalue-referenstyp som ett resultat av en gjuten åtgärd i enlighet med C++11-standarden.
Aktivera körtids-typinformation
Lägger till kod för kontroll av C++-objekttyper vid körning (körningstypsinformation, eller RTTI). Ställer in /GR, /GR-.
OpenMP-stöd
Aktiverar OpenMP 2.0-språktillägg. Anger /openmp.
C++-språkstandard
Avgör vilken C++-språkstandard som kompilatorn tillämpar. Standardvärdet anger inte något standardalternativ, så kompilatorn använder standardinställningen C++14. Om du väljer ett specifikt värde anges motsvarande /std kompilatoralternativ.
Choices
- Förval (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)
- Förhandsversion – ISO C++23 Standard (/std:c++23förhandsversion)
- Förhandsversion – Funktioner från det senaste C++-arbetsutkastet (/std:c++senaste)
C-språksstandard
Avgör vilken C-språkstandard som kompilatorn tillämpar. Standardvärdet anger inte något standardalternativ, så kompilatorn använder standardinställningen för äldre MSVC. Om du väljer ett specifikt värde anges motsvarande /std kompilatoralternativ.
Choices
- Standardinställning (äldre MSVC)
- ISO C11 Standard (/std:c11)
- ISO C17 (2018) Standard (/std:c17)
- Förhandsversion – Funktioner från det senaste C-arbetsutkastet (/std:clatest)
Överensstämmelseläge
Aktiverar eller undertrycker överensstämmelseläget. Anger /permissive-.
Aktivera experimentella C++-standardbiblioteksmoduler
Experimentellt stöd för C++-moduler enligt TS och standardbiblioteket.
Skapa ISO C++23-standardbiblioteksmoduler
Från och med Visual Studio 17.6, när den här egenskapen är aktiverad och C++ Language Standard har angetts till /std:c++latest, hittar och skapar Microsoft C++-projekt automatiskt ISO C++23 Standard Library-moduler. På så sätt kan du import std eller import std.compat i din C++-kod.
Egenskaper för förkompilerade huvudfiler för C/C++
Förkompilerad rubrik
Skapa/använd förkompilerat huvud
Gör det möjligt att skapa eller använda en fördefinierad rubrik under bygget. Anger /Yc, /Yu.
Choices
-
Skapa – Instruerar kompilatorn att skapa en fördefinierad rubrikfil (
.pch) som representerar kompileringstillståndet vid en viss tidpunkt. -
Använd – Instruerar kompilatorn att använda en befintlig fördefinierad rubrikfil (
.pch) i den aktuella kompileringen. - Använd inte förkompilerade rubriker – Använd inte förkompilerade rubriker.
Förkompilerad rubrikfil
Anger namnet på huvudfilen som kompilatorn använder för att skapa eller komma åt en fördefinierad rubrik. Anger /Yc, /Yu.
Fördefinierad utdatafil för sidhuvud
Anger sökvägen eller namnet på den genererade förkompilerade huvudfilen. Anger /Fp.
Egenskaper för C/C++-utdatafiler
Expandera attributkälla
Skapar en listfil med expanderade attribut som matas in i källfilen. Anger /Fx.
Assembler-utdata
Anger innehållet i utdatafilen för sammansättningsspråket. Sätter /FA, /FAc, /FAs, /FAcs.
Choices
- Ingen lista – Ingen lista.
-
Endast assemblerlistning - Assemblerkod:
.asm. -
Sammansättning med maskinkod – maskin- och sammansättningskod:
.cod. -
Sammansättning med källkod – källkod och sammansättningskod:
.asm. -
Sammansättning, maskinkod och källa – sammansättning, datorkod och källkod:
.cod.
Använda Unicode för assembler-lista
Gör att utdatafilen skapas i UTF-8-format.
PLATS för ASM-lista
Anger den relativa sökvägen eller namnet på ASM-listfilen. Kan vara ett fil- eller katalognamn. Anger /Fa.
Filnamn för modulutdata
Filplats för utdata för modulen eller huvudenheten (BMI). Kan vara ett fil- eller katalognamn. Anger /ifcOutput[name].
Filnamn för modulberoenden
Anger sökvägen och/eller namnet på den genererade modulberoendefilen. Anger /scanDependencies[path].
Objektfilnamn
Anger ett namn som åsidosätter standardobjektfilens namn. Kan vara ett fil- eller katalognamn. Anger /Fo.
Programdatabasens filnamn
Anger ett namn på en kompilatorgenererad PDB-fil. Anger även basnamnet för den nödvändiga kompilatorgenererade IDB-filen. Kan vara ett fil- eller katalognamn. Anger /Fd.
Generera XML-dokumentationsfiler
Anger att kompilatorn ska generera XML-dokumentationens kommentarsfiler (. XDC). Anger /doc.
Filnamn för XML-dokumentation
Anger namnet på de genererade XML-dokumentationsfilerna. Kan vara ett fil- eller katalognamn. Anger /doc:<namn>.
Generera källberoendefil
Genererar en JSON-fil med listan över alla filer som kompilatorn använde för kompilering av källan. Anger /sourceDependencies.
Filnamn för källberoenden
Anger sökvägen och/eller namnet på den genererade källberoendefilen. Anger /sourceDependencies[path].
C/C++ Bläddra bland informationsegenskaper
Aktivera bläddringsinformation
Anger om kompilatorn ska generera en .bsc fil. Anger /FR.
Bläddra i informationsfil
Anger ett valfritt namn för webbläsarinformationsfilen. Anger /FR<namn>.
Egenskaper för externa include-filer för C/C++
Behandla filer som ingår med vinkelparenteser som externa
Anger om filer som ingår med vinkelparenteser ska behandlas som externa. Ställ in den här egenskapen på Ja för att ange kompilatoralternativet /external:anglebrackets .
Varningsnivå för externt sidhuvud
Välj hur strikt du vill att kompilatorn ska vara gällande kodfel i externa huvudfiler. Den här egenskapen anger kompilatoralternativet /external:Wn . Om det här värdet är inställt på Ärv projektvarningsnivå eller standardvärdet ignoreras andra /external alternativ.
Malldiagnostik i externa huvuden
Anger om du vill utvärdera varningsnivån i en mall-instansieringskedja. Ställ in den här egenskapen på Ja för att ange kompilatoralternativet /external:templates- .
Inaktivera kodanalys för externa rubriker
Inaktiverar kodanalys för externa huvuden. Anger kompilatoralternativet /analyze:external- .
Analysregleruppsättning för externa rubriker
Anger åsidosättning av en kodanalysregel för externa headerfiler. Om den här egenskapen inte har angetts används inställningen Code Analysis. Anger kompilatoralternativet /analyze:external:ruleset path .
Avancerade egenskaper för C/C++
Samtalskonvention
Välj standardanropskonventionen för ditt program (kan åsidosättas av funktionen). Sätter /Gd, /Gr, /Gz, /Gv.
Choices
-
__cdecl– Anger anropskonventionen__cdeclför alla funktioner, förutom C++-medlemsfunktioner och -funktioner markerade__stdcalleller__fastcall. -
__fastcall– Anger anropskonventionen__fastcallför alla funktioner, förutom C++-medlemsfunktioner och -funktioner markerade__cdecleller__stdcall. Alla__fastcallfunktioner måste ha prototyper. -
__stdcall– Anger anropskonventionen__stdcallför alla funktioner, förutom C++-medlemsfunktioner och -funktioner markerade__cdecleller__fastcall. Alla__stdcallfunktioner måste ha prototyper. -
__vectorcall– Anger anropskonventionen__vectorcallför alla funktioner, förutom C++-medlemsfunktioner och -funktioner markerade__cdecl,__fastcalleller__stdcall. Alla__vectorcallfunktioner måste ha prototyper.
Kompilera som
Välj ett alternativ för kompileringsspråk för källfiler. Anger /TC, /TP, /interface, /internalPartition eller /exportHeader alternativ.
Choices
- Standard – standard.
-
Kompilera som C-kod (
/TC) – Kompilera angivna källfiler som C-kod. Som standard kompileras filer med ett.ctillägg som C. -
Kompilera som C++ Code (
/TP) – Kompilera angivna källfiler som C++-kod. Som standard kompileras alla källfiler som inte har filnamnstillägget.c,.ixx,.cppmeller.hsom inte har något tillägg, som C++. -
Kompilera som C++-modulkod (
/interface) – Kompilera angivna källfiler som C++-modulkod. Som standard kompileras filer med ett.ixxeller.cppmett tillägg som C++-modulkod. -
Kompilera som intern C++-modulpartition (
/internalPartition) – Kompilera angivna källfiler som intern partition för C++-modulen. -
Kompilera som C++ Rubrikenhet (
/exportHeader) – Kompilera angivna källfiler som C++-huvudenhet. Som standard kompileras filer med ett.htillägg eller inget tillägg som rubrikenheter.
Inaktivera specifika varningar
Inaktivera de angivna varningsnumren. Placera varningsnumren i en semikolonavgränsad lista. Sätter /wd<nummer>.
Tvingad inkluderingsfil
Anger en eller flera tvingande include-filer. Anger /FI<namn>.
Tvingad #using fil
Anger en eller flera framtvingade #using filer. Anger /FU<namn>.
Visa inkluderar
Genererar en lista över inkluderingsfiler med kompilatorutdata. Anger /showIncludes.
Använd fullständiga sökvägar
Använd fullständiga sökvägar i diagnostikmeddelanden. Anger /FC.
Utelämna standardbibliotekets namn
Anger att standardbiblioteksnamn ska utelämnas i .obj filer. Anger /Zl.
Intern felrapportering för kompilator
Anmärkning
Det här alternativet är inaktuellt. Från och med Windows Vista styrs felrapportering av inställningarna för Windows Felrapportering (WER).
Behandla specifika varningar som fel
Behandlar den specifika kompilatorvarningen som ett fel, där n är en kompilatorvarning.
Ytterligare alternativ
Ytterligare alternativ.