Egenskapssidor för C/C++

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 inline eller __inline och 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 _DEBUG och _MT. Det här alternativet gör också att kompilatorn placerar biblioteksnamnet LIBCMTD.lib i .obj filen så att länkaren använder LIBCMTD.lib fö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 _MT och _DLL och gör att kompilatorn placerar biblioteksnamnet MSVCRT.lib i .obj-filen.
  • DLL för flertrådad felsökning – definierar _DEBUG, _MToch och _DLL gö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 .obj filen.

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

  • Inaktivera säkerhetskontrollen - Ställer in /GS-.
  • Aktivera säkerhetskontroll – Ställer in /GS.

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 /arch alternativ.

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 /arch alternativ.

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:strict gör att fp_contract är avstängd och fenv_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:strict fram 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 __cdecl för alla funktioner, förutom C++-medlemsfunktioner och -funktioner markerade __stdcall eller __fastcall.
  • __fastcall – Anger anropskonventionen __fastcall för alla funktioner, förutom C++-medlemsfunktioner och -funktioner markerade __cdecl eller __stdcall. Alla __fastcall funktioner måste ha prototyper.
  • __stdcall – Anger anropskonventionen __stdcall för alla funktioner, förutom C++-medlemsfunktioner och -funktioner markerade __cdecl eller __fastcall. Alla __stdcall funktioner måste ha prototyper.
  • __vectorcall – Anger anropskonventionen __vectorcall för alla funktioner, förutom C++-medlemsfunktioner och -funktioner markerade __cdecl, __fastcalleller __stdcall. Alla __vectorcall funktioner 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 .c tillä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 .h som 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 .ixx eller .cppm ett 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 .h tillä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.