Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Níže uvedené stránky vlastností se nacházejí v části Projekt>Vlastnosti>Konfigurační vlastnosti>C/C++:
Obecné vlastnosti C/C++
Další adresáře pro zahrnutí
Určuje jeden nebo více adresářů, které se mají přidat do include path. Pokud existuje více adresářů, oddělte adresáře středníky (;). Nastaví možnost kompilátoru /I (Další zahrnutí adresářů).
Další #using adresáře
Určuje jeden nebo více adresářů, které se mají prohledat k nalezení a rozlišení názvů předaných direktivě #using. Pokud přidáte více adresářů, oddělte adresáře středníky (;). Nastaví možnost kompilátoru /AI .
Další adresáře BMI
Určuje jeden nebo více adresářů, které se mají hledat, aby se přeložily názvy předané direktivě import . Pokud přidáte více adresářů, oddělte adresáře středníky (;). Nastaví možnost kompilátoru /ifcSearchDir[path] .
Další závislosti modulů
Určuje jeden nebo více modulů, které se mají použít k překladu názvů předaných direktivě import . Pokud přidáte více adresářů, oddělte adresáře středníky (;). Nastaví možnost kompilátoru /reference .
Další závislosti modulů hlaviček
Určuje jednu nebo více jednotek hlaviček, které se mají použít k překladu názvů předaných direktivě hlavičky import . Pokud přidáte více adresářů, oddělte adresáře středníky (;). Nastaví možnost kompilátoru /headerUnit .
Vyhledat zdroje závislostí modulů
Pokud je tato vlastnost nastavena na Ano, kompilátor prohledá všechny zdroje jazyka C++, nejen rozhraní modulu a zdroje jednotek hlaviček, pro závislosti modulů a jednotek hlaviček. Systém sestavení sestaví celý graf závislostí, který zajistí, že se před kompilací souborů, které na nich závisejí, sestaví všechny importované moduly a jednotky hlaviček. Když jsou možnosti Vyhledat závislosti modulů ve zdrojových souborech a Převést direktivy include na importy obě nastavené na Ano, každý hlavičkový soubor, který je uvedený v souboru header-units.json ve stejném adresáři jako daný hlavičkový soubor, se zkompiluje do jednotky hlavičky.
Soubory, které mají příponu .ixx, a soubory, které mají ve vlastnostech souboru>C/C++>Advanced>Compile As nastavenou vlastnost na Compile as C++ Header Unit (/exportHeader), jsou vždy analyzovány.
Soubory, které mají příponu .ixxa soubory, které mají vlastnosti> Souboru C/C++>Compile As nastavenou na Compile as C++ Header Unit (/exportHeader), se vždy prohledávají.
Přeložit zahrnutí na importy
Pokud je tato vlastnost nastavena na Ano, kompilátor považuje direktivu #include za direktivu import , pokud jsou splněny určité podmínky: Hlavičkový soubor je zadán v header-units.json souboru ve stejném adresáři a zkompilovaná hlavičková jednotka ( .ifc soubor) je k dispozici pro hlavičkový soubor. V opačném případě se soubor záhlaví považuje za normální #include. Soubor header-units.json slouží k sestavení jednotek záhlaví pro každý #include bez duplikace symbolů. Pokud jsou Přeložit zahrnutí do importů a Vyhledat v zdrojových souborech závislosti modulů obě nastaveny na Ano, kompilátor automaticky vyhledá všechny hlavičkové soubory, které lze zkompilovat do jednotek hlaviček. Tato vlastnost nastaví možnost kompilátoru /translateInclude .
Formát informací o ladění
Určuje typ informací o ladění generovaných kompilátorem. Tato vlastnost vyžaduje kompatibilní nastavení linkeru. Nastavit /Z7, /Zi, /ZI(formát informací ladění) možnosti kompilátoru.
Možnosti
-
None (
None) – Nevygeneruje žádné informace o ladění, takže kompilace může být rychlejší. -
Kompatibilní s C7 (
OldStyle) – Vytvoří soubory objektů, které obsahují úplné symbolické informace o ladění. Neprodukuje se žádný soubor PDB. -
Program Database (
ProgramDatabase) – vytvoří programovou databázi (PDB), která obsahuje informace o typu a symbolické informace o ladění pro použití s ladicím programem. Symbolické informace o ladění zahrnují názvy a typy proměnných a funkcí a čísla řádků. -
Program Database for Edit And Continue (
EditAndContinue) – vytvoří programovou databázi, jak je popsáno výše, ve formátu, který podporuje funkci Upravit a pokračovat .
Podpora ladění pouze mého kódu
Přidá podpůrný kód pro povolení ladění Just My Code v této kompilační jednotce. Množiny /JMC.
Podpora dynamického ladění C++
(Preview) Nastaví příznak /dynamicdeopt kompilátoru pro zapnutí dynamického ladění jazyka C++. Umístěte deoptimalizované body zastavení a provádějte kroky libovolně s deoptimalizací funkcí na vyžádání. Tento režim použijte pro ladění optimalizovaného kódu.
Podpora Common Language RunTime
Použijte službu runtime .NET. Tento přepínač není kompatibilní s některými dalšími přepínači. Podrobnosti najdete v dokumentaci /clr řady přepínačů.
Možnosti
- Bez podpory modulu CLR – bez podpory modulu CLR (Common Language Runtime).
- Podpora Common Language RunTime – Vytvoří metadata pro vaši aplikaci, která mohou být využívána jinými aplikacemi CLR. Umožňuje také aplikaci využívat typy a data v metadatech jiných komponent CLR.
- Pure MSIL Common Language RunTime Support - Vytvoří výstupní soubor pouze MSIL bez nativního spustitelného kódu, i když může obsahovat nativní typy kompilované do jazyka MSIL.
- Safe MSIL Common Language RunTime Support – Vytvoří pouze jazyk MSIL (bez nativního spustitelného kódu) a ověřitelný výstupní soubor.
Využití rozšíření prostředí prostředí Windows Runtime
Používejte rozšíření jazyka pro prostředí Windows Runtime Množiny /ZW.
Potlačení úvodního banneru
Potlačí zobrazení nápisu pro přihlášení při spuštění kompilátoru a zobrazení informačních zpráv během kompilace.
Úroveň upozornění
Vyberte, jak striktní má kompilátor být o chybách kódu. Množiny /W0 - /W4.
Možnosti
- Vypněte všechna upozornění – úroveň 0 zakáže všechna upozornění.
- Úroveň 1 – úroveň 1 zobrazuje závažná upozornění. Úroveň 1 je výchozí úroveň upozornění na příkazovém řádku.
- Úroveň 2 – úroveň 2 zobrazuje všechna upozornění úrovně 1 a méně závažná upozornění.
- Úroveň 3 – úroveň 3 zobrazí všechna upozornění úrovně 2 a všechna ostatní upozornění doporučená pro produkční účely.
- Úroveň 4 – úroveň 4 zobrazuje všechna upozornění úrovně 3 a informační upozornění, která se ve většině případů dají bezpečně ignorovat.
- EnableAllWarnings – Povolí všechna upozornění, včetně těch, které jsou ve výchozím nastavení zakázané.
Zacházení s upozorněními jako s chybami
Zpracovává upozornění kompilátoru jako chyby. Pro nový projekt může být nejvhodnější použít /WX při každé kompilaci. Vyřešte všechna upozornění, aby se minimalizovaly chyby kódu, které je obtížné najít.
Verze varování
Skryjte upozornění zavedená po konkrétní verzi kompilátoru. Množiny /Wv:xx[.yy[.zzzzz]].
Formát diagnostiky
Umožňuje bohatou diagnostiku s informacemi o sloupci a kontextem zdroje v diagnostických zprávách.
Možnosti
- Stříška – poskytuje informace o sloupci v diagnostické zprávě. Také vypíše příslušný řádek zdrojového kódu se stříškou, která označuje problematický sloupec.
- Informace o sloupci – Také uvádí číslo sloupce v rámci řádku, kde je vydána diagnostika, pokud je to možné.
- Classic – Zobrazuje pouze předchozí, stručné diagnostické zprávy s číslem řádku.
Kontroly SDL
Další kontroly doporučené v rámci procesu Security Development Lifecycle (SDL). Zahrnuje povolení dalších funkcí pro bezpečné generování kódu a nastavení dalších varování souvisejících se zabezpečením tak, aby byla vyhodnocována jako chyby. Množiny /sdl, /sdl-.
Kompilace s více procesory
Povolte kompilaci s více procesory. Nastaví možnost kompilátoru /MP .
Povolení sanitizátoru adres
Kompiluje a propojuje program s instrumentací AddressSanitizer. Tato vlastnost v současné době podporuje cílové buildy x86 a x64. Nastaví možnost kompilátoru /fsanitize .
Povolení podpory fuzzeru (experimentální)
Zkompiluje programy pomocí fuzzeru. Povolte AddressSanitizer pro nejlepší výsledky. Aktuálně je k dispozici pro buildy x86 a x64. Množiny /fsanitize=fuzzer.
Vlastnosti optimalizace C/C++
Optimalizace
Vyberte možnost optimalizace kódu. Pokud chcete použít konkrétní možnosti optimalizace, vyberte Možnost Vlastní . Sady /Od, /O1, /O2.
Možnosti
- Vlastní – vlastní optimalizace
- Zakázáno – Zakažte optimalizaci.
-
Maximální optimalizace (upřednostnit velikost) – ekvivalent k
/Os /Oy /Ob2 /Gs /GF /Gy. -
Maximální optimalizace (upřednostňuje rychlost) – ekvivalent k
/Oi /Ot /Oy /Ob2 /Gs /GF /Gy. -
Optimalizace (upřednostnění rychlosti) – ekvivalent k
/Oi /Ot /Oy /Ob2.
Rozšíření vložené funkce
Vyberte úroveň rozšíření vložené funkce pro sestavení. Množiny /Ob.
Možnosti
- Výchozí
- Zakázáno – Zakáže vložené rozšíření, které je ve výchozím nastavení zapnuté.
-
Pouze __inline – rozbalí pouze funkce označené jako
inline,__forceinlinenebo__inline. Nebo v členské funkci jazyka C++ definované v deklaraci třídy. - Jakákoli vhodná – rozšiřuje funkce označené jako nebo
inlinea další funkce, které kompilátor zvolí. (Rozšíření probíhá podle uvážení kompilátoru. Toto rozšíření vybrané kompilátorem se často označuje jako automatické inlinování.)
Povolení vnitřních funkcí
Povolí vnitřní funkce. Použití vnitřních funkcí generuje rychlejší, ale pravděpodobně větší kód. Množiny /Oi.
Upřednostnění velikosti nebo rychlosti
Zda upřednostnit velikost kódu, nebo jeho rychlost.
Global Optimization musí být zapnuté. Množiny /Ot, /Os.
Možnosti
- Upřednostnění malého kódu – minimalizuje velikost exes a knihoven DLL pokynem kompilátoru, aby upřednostňuje velikost přes rychlost.
- Upřednostněte rychlý kód – maximalizuje rychlost exes a knihoven DLL tím, že kompilátoru dá pokyn, aby upřednostňuje rychlost nad velikostí. (Tato hodnota je výchozí, pokud jsou povoleny optimalizace.)
- Žádné - bez optimalizace velikosti a rychlosti.
Vynechání ukazatelů na rámečky
Potlačuje vytváření rámcových ukazatelů v zásobníku volání.
Povolit Fiber-Safe optimalizace
Umožňuje optimalizace bezpečné pro vlákna pro aplikace, které používají vlákna pro přístup k místnímu úložišti vláken. Množiny /GT.
Optimalizace celého programu
Umožňuje optimalizace mezi moduly tím, že odloží generování kódu až do času sestavení. Vyžaduje volbu linkeru Generování kódu při čase propojení. Množiny /GL.
Vlastnosti preprocesoru C/C++
Definice preprocesoru
Definuje symboly předběžného zpracování zdrojového souboru.
Zrušení definic preprocesoru
Určuje jeden nebo více nedefinů preprocesoru. Množiny /U.
Nedefinovat všechny definice preprocesoru
Nedefinuje všechny dříve definované hodnoty preprocesoru. Množiny /u.
Ignorovat standardní cesty zahrnování
Brání kompilátoru v hledání souborů include v adresářích zadaných v proměnných prostředí INCLUDE.
Předzpracovat do souboru
Předzpracuje zdrojové soubory C a C++ a zapíše předzpracovaný výstup do souboru. Tato možnost potlačuje kompilaci a nevytváří .obj soubor.
Předzpracovat zakázat řádková čísla
Předběžné zpracování bez direktiv #line.
Zachovat komentáře
Tuto možnost povolte, pokud chcete zachovat zdrojové komentáře jazyka C a C++ (// a /* ... */) v .i souborech a jiných výstupech preprocesoru. Preprocesor ve výchozím nastavení odebere komentáře.
Vyžaduje nastavení alespoň jedné z možností předběžného zpracování . Množiny /C.
Použití standardního preprocesoru odpovídajícího standardu
Použijte standardní preprocesor odpovídající standardu (/Zc:preprocessor). Aktuálně se předpokládá v /std:c11 a pozdějších verzích. Chcete-li použít starší preprocesor, nastavte tuto vlastnost na Hodnotu Ne.
Vlastnosti generování kódu C/C++
Povolení sdružování řetězců
Povolením této vlastnosti zapnete sdružování řetězců, které sloučí identické řetězce do jediné kopie určené pouze pro čtení ve zkompilovaném programu. To může vést k menším programům.
/O1, /O2, a /ZI automaticky nastaví možnost /GF.
Povolit minimální opětovné sestavení
Umožňuje minimální opětovné sestavení, které určuje, zda se mají znovu zkompilovat zdrojové soubory C++, které obsahují soubory hlaviček (.h), které obsahují změněné definice tříd jazyka C++.
Povolení výjimek C++
Určuje model zpracování výjimek, který bude kompilátor používat.
Možnosti
-
Ano s výjimkami SEH – model zpracování výjimek, který zachycuje asynchronní (strukturované) a synchronní výjimky (C++). Množiny
/EHa. -
Ano – Model zpracování výjimek, který zachytává pouze výjimky jazyka C++ a konfiguruje kompilátor tak, aby předpokládal, že
extern "C"funkce nikdy nevyvolají výjimku jazyka C++. Množiny/EHsc. -
Ano s externími funkcemi jazyka C – model zpracování výjimek, který zachytává výjimky jazyka C++, a konfiguruje kompilátor tak, aby předpokládal, že
extern "C"funkce vyvolá výjimku. Množiny/EHs. - Ne – Bez zpracování výjimek.
Kontrola malého typu
Umožňuje kontrolu převodu na menší typy. Nekompatibilní s jiným typem optimalizace než ladění. Množiny /RTCc.
Základní kontroly modulu runtime
Povolí základní kontroly chyb za běhu. Nekompatibilní s jiným typem optimalizace než ladění. Sady /RTCs, /RTCu, /RTC1.
Možnosti
- Rámce zásobníku – Povoluje kontrolu běhových chyb rámců zásobníku.
- Neinicializované proměnné – Upozorní při použití proměnné, která nebyla inicializována.
-
Oba (/RTC1, ekvivalent k /RTCsu) - ekvivalent
/RTCsu. - Výchozí – výchozí kontroly modulu runtime
Knihovna modulu runtime
Určuje knihovnu modulu runtime pro propojení. Sady /MT, /MTd, /MD, /MDd.
Možnosti
- Vícevláknové – způsobí, že vaše aplikace použije vícevláknovou statickou verzi knihovny modulu runtime.
-
Vícevláknové ladění - definuje
_DEBUGa_MT. Tato možnost také způsobí, že kompilátor umístí název knihovny LIBCMTD.lib do souboru.obj, aby propojovací program použilLIBCMTD.libk vyřešení externích symbolů. -
Vícevláknová knihovna DLL – způsobí, že aplikace použije vícevláknovou verzi běhové knihovny určenou pro knihovny DLL. Definuje
_MTa_DLLa způsobí, že kompilátor umístí knihovnu MSVCRT.lib do souboru.obj. -
Ladicí knihovna DLL s více vlákny – definuje
_DEBUG,_MTa_DLLa způsobí, že vaše aplikace bude používat ladicí verzi dynamicky propojované vícevláknové běhové knihovny. Také způsobí, že kompilátor umístí název knihovny MSVCRTD.lib do.objsouboru.
Zarovnání strukturovaných členů
Určuje hranice 1, 2, 4, 8 nebo 16 bajtů pro zarovnání členů struktury. Množiny /Zp.
Možnosti
-
1 Bajt – Sbaluje struktury na jednobajtové hranice. Stejné jako
/Zp. - 2 Bajty – Zarovná struktury na dvoubajtové hranice.
- 4 Bajty – Zabalí struktury na čtyřbajtové hranicemi.
- 8 bajtů – Zabalí struktury na osmi bajtové hranice (výchozí).
- 16 Bajty - Balí struktury na šestnácti bajtových hranicích.
- Výchozí – Výchozí nastavení zarovnání
Určuje hranice 1, 2, 4 nebo 8 bajtů pro zarovnání členů struktury. Množiny /Zp.
Možnosti
-
1 Bajt – Sbaluje struktury na jednobajtové hranice. Stejné jako
/Zp. - 2 Bajty – Zarovná struktury na dvoubajtové hranice.
- 4 Bajty – Zabalí struktury na čtyřbajtové hranicemi.
- 8 bajtů – Zabalí struktury na osmi bajtové hranice (výchozí).
- Výchozí – Výchozí nastavení zarovnání
Kontrola zabezpečení
Pomáhá zjišťovat přetečení zásobníku vyrovnávací paměti, které útočníci můžou zneužít k ohrožení vaší aplikace.
Možnosti
Ochrana řízení toku (Control Flow Guard)
Pomáhá odhalovat pokusy o přesměrování do neplatných bloků kódu.
Možnosti
-
Ano - Povolte Control Flow Guard. Množiny
/guard:cf. - Ne
Povolení propojení na úrovni funkce
Umožňuje kompilátoru zabalit jednotlivé funkce ve formě zabalených funkcí (COMDAT). Je nezbytné pro úpravy a pokračování v práci. Množiny /Gy.
Povolení paralelního generování kódu
Umožňuje kompilátoru generovat paralelní kód pro smyčky identifikované pomocí #pragma loop(hint_parallel[(n)]), když je povolena optimalizace.
Povolit rozšířenou instrukční sadu
Povolte použití pokynů nalezených u procesorů, které podporují rozšířené instrukční sady. Například vylepšení SSE, SSE2, AVX a AVX2 na IA-32 a vylepšení AVX a AVX2 na platformu x64.
/arch:SSE je k dispozici pouze pro sestavení x86.
/arch:SSE2 je k dispozici pro sestavení x86 a x64 a je výchozí pro obě architektury. Použití rozšířených instrukcí lze zakázat s /arch:IA32. Další informace naleznete v tématu /arch (x86), /arch (x64), /arch (ARM64), a /arch (ARM).
Možnosti
-
Streaming SIMD Extensions (X86) - Povolí technologii Streaming SIMD Extensions. Množiny
/arch:SSE. -
Streaming SIMD Extensions 2 (X86) - Povolí rozšíření Streaming SIMD Extensions 2. Množiny
/arch:SSE2. -
Rozšířená vektorová rozšíření (X86/X64) – povolí rozšířená vektorová rozšíření. Množiny
/arch:AVX. -
Advanced Vector Extensions 2 (X86/X64) – Povolí Advanced Vector Extensions 2. Množiny
/arch:AVX2. -
Advanced Vector Extensions 512 (X86/X64) – Povolí technologii Advanced Vector Extensions 512. Množiny
/arch:AVX512. -
Advanced Vector Extensions AVX10.1 (X86/X64) – umožňuje rozšířená vektorová rozšíření 10 verze 1. Množiny
/arch:AVX10.1. -
Advanced Vector Extensions AVX10.2 (X86/X64) – umožňuje rozšířená vektorová rozšíření 10 verze 2. Množiny
/arch:AVX10.2. -
Rozšíření virtualizace (ARM) Umožňuje rozšíření virtualizace ARM. Množiny
/arch:ARMv7VE. -
Pokyny pro ARM VFPv4 (ARM) Povolí instrukce ARM VFPv4. Množiny
/arch:VFPv4. -
Požadavky na rozšíření procesoru ARMv8.0-A (ARM64) Povolí požadavky ARMv8.0-A. Množiny
/arch:arm8.0. -
Požadavky na rozšíření procesoru ARMv8.1-A (ARM64) Povoluje požadavky ARMv8.1-A. Množiny
/arch:arm8.1. -
Požadavky na rozšíření procesoru ARMv8.2-A (ARM64) Povoluje požadavky ARMv8.2-A. Množiny
/arch:arm8.2. -
Požadavky na rozšíření procesoru ARMv8.3-A (ARM64) Povolí požadavky ARMv8.3-A. Množiny
/arch:arm8.3. -
Požadavky na rozšíření procesoru ARMv8.4-A (ARM64) Povolí požadavky ARMv8.4-A. Množiny
/arch:arm8.4. -
Požadavky na rozšíření procesoru ARMv8.5-A (ARM64) Povoluje požadavky ARMv8.5-A. Množiny
/arch:arm8.5. -
Požadavky na rozšíření procesoru ARMv8.6-A (ARM64) Povolí požadavky ARMv8.6-A. Množiny
/arch:arm8.6. -
Požadavky na rozšíření procesoru ARMv8.7-A (ARM64) Povolí požadavky ARMv8.7-A. Množiny
/arch:arm8.7. -
Požadavky na rozšíření procesoru ARMv8.8-A (ARM64) Povolí požadavky ARMv8.8-A. Množiny
/arch:arm8.8. -
Žádné rozšířené pokyny – zakáže rozšířené pokyny pro sestavení x86. Množiny
/arch:IA32. -
Nenastavuje – nenastavuje explicitně
/archmožnost.
Povolte použití pokynů nalezených u procesorů, které podporují rozšířené instrukční sady. Například vylepšení SSE, SSE2, AVX a AVX2 na IA-32 a vylepšení AVX a AVX2 na platformu x64. V současné době jsou /arch:SSE a /arch:SSE2 k dispozici pouze při sestavování pro architekturu x86. Pokud není zadána žádná možnost, kompilátor použije pokyny nalezené u procesorů, které podporují SSE2. Použití rozšířených instrukcí lze zakázat s /arch:IA32. Další informace naleznete v tématu /arch (x86), /arch (x64), /arch (ARM64), a /arch (ARM).
Možnosti
-
Streaming SIMD Extensions (X86) – Povolí rozšíření Streaming SIMD Extensions. Množiny
/arch:SSE. -
Streaming SIMD Extensions 2 (X86) - Povolí rozšíření Streaming SIMD Extensions 2. Množiny
/arch:SSE2. -
Rozšířená vektorová rozšíření (X86/X64) – povolí rozšířená vektorová rozšíření. Množiny
/arch:AVX. -
Advanced Vector Extensions 2 (X86/X64) – Povolí Advanced Vector Extensions 2. Množiny
/arch:AVX2. -
Advanced Vector Extensions 512 (X86/X64) – Povolí technologii Advanced Vector Extensions 512. Množiny
/arch:AVX512. -
Advanced Vector Extensions AVX10.1 (X86/X64) – umožňuje rozšířená vektorová rozšíření 10 verze 1. Množiny
/arch:AVX10.1. -
Rozšíření virtualizace (ARM) Umožňuje rozšíření virtualizace ARM. Množiny
/arch:ARMv7VE. -
Pokyny pro ARM VFPv4 (ARM) Povolí instrukce ARM VFPv4. Množiny
/arch:VFPv4. -
Požadavky na rozšíření procesoru ARMv8.0-A (ARM64) Povolí požadavky ARMv8.0-A. Množiny
/arch:arm8.0. -
Požadavky na rozšíření procesoru ARMv8.1-A (ARM64) Povoluje požadavky ARMv8.1-A. Množiny
/arch:arm8.1. -
Požadavky na rozšíření procesoru ARMv8.2-A (ARM64) Povoluje požadavky ARMv8.2-A. Množiny
/arch:arm8.2. -
Požadavky na rozšíření procesoru ARMv8.3-A (ARM64) Povolí požadavky ARMv8.3-A. Množiny
/arch:arm8.3. -
Požadavky na rozšíření procesoru ARMv8.4-A (ARM64) Povolí požadavky ARMv8.4-A. Množiny
/arch:arm8.4. -
Požadavky na rozšíření procesoru ARMv8.5-A (ARM64) Povoluje požadavky ARMv8.5-A. Množiny
/arch:arm8.5. -
Požadavky na rozšíření procesoru ARMv8.6-A (ARM64) Povolí požadavky ARMv8.6-A. Množiny
/arch:arm8.6. -
Požadavky na rozšíření procesoru ARMv8.7-A (ARM64) Povolí požadavky ARMv8.7-A. Množiny
/arch:arm8.7. -
Požadavky na rozšíření procesoru ARMv8.8-A (ARM64) Povolí požadavky ARMv8.8-A. Množiny
/arch:arm8.8. -
Žádné rozšířené pokyny – zakáže rozšířené pokyny pro sestavení x86. Množiny
/arch:IA32. -
Nenastavuje – nenastavuje explicitně
/archmožnost.
Možnosti
-
Rozšíření SIMD streamování – Rozšíření SIMD streamování. Nastavuje
/arch:SSE -
Streaming SIMD Rozšíření 2 - Streaming SIMD Rozšíření 2. Nastavuje
/arch:SSE2 -
Rozšířená vektorová rozšíření – rozšířená vektorová rozšíření. Nastavuje
/arch:AVX -
Advanced Vector Extensions 2 - Advanced Vector Extensions 2. Nastavuje
/arch:AVX2 -
Žádné vylepšené instrukce – žádné rozšířené instrukce. Nastavuje
/arch:IA32 - Nezadané – Nezadané
Povolit délku vektoru
Povolte volbu délky vektoru pro příznaky /arch:AVX512 a /arch:AVX10.x. Povolené hodnoty jsou 256 a 512 bitů (X86/X64).
Model s plovoucí čárkou
Nastaví model pro plovoucí řádovou čárku. Sady /fp:precise, /fp:strict, /fp:fast.
Možnosti
- Přesné – výchozí. Zlepšuje konzistenci testů s čísly s plovoucí řádovou čárkou pro rovnost a nerovnost.
-
Striktní – nejpřísnější model s plovoucí řádovou čárkou.
/fp:strictzpůsobífp_contract, že bude vypnutý afenv_accessbude zapnutý./fp:exceptje implicitní a lze ho zakázat explicitním/fp:except-zadáním . Při použití s/fp:except-,/fp:strictvynucuje přísnou plovoucí bodovou sémantiku, ale bez zohlednění výjimečných událostí. - Rychle – ve většině případů vytvoří nejrychlejší kód.
Povolení výjimek v plovoucí čárce
Spolehlivý model výjimek s plovoucí čárkou Výjimky budou vyvolány okamžitě po jejich aktivaci. Množiny /fp:except.
Vytvoření obrazu s možností opravy za běhu
Při zapnutém hotpatchingu kompilátor zajistí, že první instrukce každé funkce má délku dva bajty, jak je vyžadováno pro hotpatching. Množiny /hotpatch.
Zmírnění Spectre
Opatření proti Spectre pro CVE 2017-5753. Množiny /Qspectre.
Možnosti
- Povoleno – Povolí zmírnění dopadů zranitelnosti Spectre pro CVE 2017-5753.
- Všechna zatížení – Povolení zmírnění rizik spectre na všech zatíženích.
- Všechna zatížení toku řízení – Povolení zmírnění rizik spectre při načítání toku řízení
- Zakázáno – Není nastaveno.
Zmírnění Spectre
Opatření proti Spectre pro CVE 2017-5753. Množiny /Qspectre.
Možnosti
- Povoleno – Povolí zmírnění dopadů zranitelnosti Spectre pro CVE 2017-5753.
- Zakázáno – Není nastaveno.
Povolit mitigaci errata Intel JCC
Softwareové zmírnění dopadu na výkon, způsobeného aktualizací mikrokódu Intel JCC erratum. Množiny /QIntel-jcc-erratum.
Povolení metadat pokračování EH
Vygeneruje seřazený seznam všech platných cílů pokračování zpracování výjimek pro binární soubor, který se používá během běhu pro ověření protokolu RIP. Aktuálně dostupné pro buildy x64. Množiny /guard:ehcont.
Povolit podepsané návraty
Povolí podepsané návraty, které pomáhají odhalit a zabránit pokusům o přesměrování řízení do neplatných bloků při návratu z funkce. Aktuálně je k dispozici pro buildy ARM64. Množiny /guard:signret.
Vlastnosti jazyka C/C++
Zakázání jazykových rozšíření
Potlačí nebo povolí jazyková rozšíření. Množiny /Za.
Zpracování WChar_t jako vestavěného typu
Když tuto vlastnost povolíte, typ wchar_t se stane nativním typem, který se mapuje na __wchar_t stejným způsobem, jakým se short mapuje na __int16. Parametr /Zc:wchar_t je standardně zapnutý.
Vynucení souladu v rámci rozsahu smyčky For
Implementuje standardní chování jazyka for C++ pro smyčky příkazů s rozšířeními Microsoftu. Sets /Za, /Ze (Zakažte jazyková rozšíření. Parametr /Zc:forScope je standardně zapnutý.
Odebrání neodkazovaného kódu a dat
Když tuto vlastnost povolíte, kompilátor už negeneruje informace o symbolech pro neodkazovaný kód a data.
Vynucení pravidel převodu typů
Slouží k identifikaci referenčního typu rvalue v důsledku operace přetypování v souladu se standardem C++11.
Aktivovat informace o typu běhového času
Přidá kód pro kontrolu typů objektů C++ za běhu programu (informace o typech za běhu neboli RTTI). Množiny /GR, /GR-.
Podpora OpenMP
Povolí jazyková rozšíření OpenMP 2.0. Množiny /openmp.
Standard jazyka C++
Určuje jazykový standard jazyka C++, který kompilátor vynucuje. Výchozí hodnota nenastavuje standardní možnost, takže kompilátor používá výchozí nastavení C++14. Pokud vyberete konkrétní hodnotu, nastaví se odpovídající /std možnost kompilátoru.
Možnosti
- Implicitní (Standard ISO C++14)
- ISO C++14 Standard (/std:c++14)
- ISO C++17 Standard (/std:c++17)
- ISO C++20 Standard (/std:c++20)
- Preview – Standard ISO C++23 (/std:c++23preview)
- Preview – funkce z nejnovějšího funkčního konceptu jazyka C++ (/std:c++latest)
Standard jazyka C
Určuje jazykový standard jazyka C, který kompilátor vynucuje. Výchozí hodnota nenastavuje standardní možnost, takže kompilátor používá výchozí starší nastavení MSVC. Pokud vyberete konkrétní hodnotu, nastaví se odpovídající /std možnost kompilátoru.
Možnosti
- Výchozí (zastaralý MSVC)
- ISO C11 Standard (/std:c11)
- ISO C17 (2018) Standard (/std:c17)
- Preview – funkce z nejnovějšího pracovního návrhu jazyka C (/std:clatest)
Režim souladu
Povolí nebo potlačí režim shody. Množiny /permissive-.
Povolení experimentálních modulů standardní knihovny C++
Experimentální podpora pro moduly C++ TS a standardní knihovny.
Sestavení modulů standardní knihovny ISO C++23
Počínaje sadou Visual Studio 17.6 je tato vlastnost povolená a jazykový standard jazyka C++ je nastavena na /std:c++latest, projekty Microsoft C++ automaticky vyhledá a sestavují moduly standardní knihovny ISO C++23. To vám umožní provést import std nebo import std.compat ve vašem kódu jazyka C++.
Vlastnosti předkompilovaných hlaviček C/C++
Předkompilovaná hlavička
Vytvoření nebo použití předkompilované hlavičky
Povolí vytvoření nebo použití předkompilované hlavičky během sestavení. Množiny /Yc, /Yu.
Možnosti
-
Create – dává kompilátoru pokyn, aby vytvořil předkompilovaný soubor hlavičky (
.pch), který představuje stav kompilace v určitém okamžiku. -
Použití – dává kompilátoru pokyn, aby v aktuální kompilaci použil existující předkompilovaný soubor hlavičky (
.pch). - Nepoužívá předkompilované hlavičky – nepoužívá předkompilované hlavičky.
Předkompilovaný soubor hlaviček
Určuje název souboru hlaviček, který kompilátor používá k vytvoření nebo přístupu k předkompilované hlavičce. Množiny /Yc, /Yu.
Předkompilovaný výstupní soubor hlavičky
Určuje cestu nebo název vygenerovaného předkompilovaného hlavičkového souboru. Množiny /Fp.
Vlastnosti výstupních souborů C/C++
Rozbalit atributovaný zdroj
Vytvoří soubor výpisu s rozbalenými atributy vloženými do zdrojového souboru. Množiny /Fx.
Výstup assembleru
Určuje obsah výstupního souboru jazyka sestavení. Sady /FA, /FAc, /FAs, /FAcs.
Možnosti
- Bez výpisu – Bez výpisu.
-
Výpis pouze v assembleru – assemblerový kód:
.asm. -
Sestavení s strojovým kódem - strojový a montážní kód:
.cod. -
Sestavení se zdrojovým kódem – zdrojový kód a kód sestavení:
.asm. -
Sestavení, strojový kód a zdroj – sestavení, strojový kód a zdrojový kód:
.cod.
Použití kódu Unicode pro výpis assembleru
Způsobí vytvoření výstupního souboru ve formátu UTF-8.
Umístění seznamu ASM
Určuje relativní cestu nebo název souboru výpisu ASM. Může to být název souboru nebo adresáře. Množiny /Fa.
Název výstupního souboru modulu
Umístění souboru výstupu jednotky modulu nebo hlavičky (BMI). Může to být název souboru nebo adresáře. Množiny /ifcOutput[name].
Název souboru závislostí modulů
Určuje cestu nebo název vygenerovaného souboru závislostí modulu. Množiny /scanDependencies[path].
Název souboru objektu
Určuje název, který přepíše výchozí název souboru s objektem. Může to být název souboru nebo adresáře. Množiny /Fo.
Název souboru databáze programu
Určuje název souboru PDB generovaného kompilátorem. Určuje také základní název požadovaného souboru IDB generovaného kompilátorem. Může to být název souboru nebo adresáře. Množiny /Fd.
Generování souborů dokumentace XML
Určuje, že kompilátor by měl generovat soubory komentářů dokumentace XML (. XDC). Množiny /doc.
Název souboru dokumentace XML
Určuje název vygenerovaných souborů dokumentace XML. Může to být název souboru nebo adresáře. Nastaví /doc:<název>.
Vygenerovat zdrojový soubor závislostí
Vygeneruje soubor JSON se seznamem všech souborů, které kompilátor používá k kompilaci zdroje. Množiny /sourceDependencies.
Název souboru zdrojových závislostí
Určuje cestu nebo název vygenerovaného zdrojového souboru závislostí. Množiny /sourceDependencies[path].
Vlastnosti procházení informací v C/C++
Povolit informace o procházení
Určuje, jestli má kompilátor vygenerovat .bsc soubor. Množiny /FR.
Procházet informační soubor
Určuje volitelný název informačního souboru prohlížeče. Nastaví /FR<název>.
Externí zahrnutí vlastností C/C++
Zacházení se soubory zahrnutými v hranatých závorkách jako s externími
Určuje, jestli se mají soubory zahrnuté do úhlových závorek považovat za externí. Nastavte tuto vlastnost na Ano , chcete-li nastavit možnost kompilátoru /external:anglebrackets .
Úroveň upozornění externího záhlaví
Vyberte, jak striktní má kompilátor být o chybách kódu v externích hlavičkách. Tato vlastnost nastaví možnost kompilátoru /external:Wn . Pokud je tato hodnota nastavena na Převzít úroveň upozornění projektu nebo na výchozí, /external ostatní možnosti se ignorují.
Diagnostika šablon v externích hlavičkách
Určuje, jestli se má vyhodnotit úroveň varování v řetězu instancí šablony. Nastavte tuto vlastnost na Ano , chcete-li nastavit možnost kompilátoru /external:templates- .
Zakázání analýzy kódu pro externí hlavičky
Zakáže analýzu kódu pro externí hlavičky. Nastaví možnost kompilátoru /analyze:external- .
Sada pravidel analýzy pro externí hlavičky
Určuje přepis pravidel analýzy kódu pro externí záhlaví. Pokud tato vlastnost není zadaná, použije se nastavení Code Analysis. Nastaví možnost kompilátoru /analyze:external:ruleset path .
Rozšířené vlastnosti jazyka C/C++
Konvence volání
Vyberte výchozí konvenci volání pro vaši aplikaci (můžete ji přepsat funkcí). Sady /Gd, /Gr, /Gz, /Gv.
Možnosti
-
__cdecl- Určuje konvenci volání__cdeclpro všechny funkce kromě členských funkcí jazyka C++ a funkcí označených__stdcallnebo__fastcall. -
__fastcall– Určuje konvenci volání__fastcallpro všechny funkce s výjimkou členských funkcí jazyka C++ a funkcí označených__cdeclnebo__stdcall. Všechny__fastcallfunkce musí mít prototypy. -
__stdcall– Určuje konvenci volání__stdcallpro všechny funkce s výjimkou členských funkcí jazyka C++ a funkcí označených__cdeclnebo__fastcall. Všechny__stdcallfunkce musí mít prototypy. -
__vectorcall- Určuje__vectorcallkonvenci volání pro všechny funkce, s výjimkou členských funkcí jazyka C++ a funkcí označených__cdecl,__fastcallnebo__stdcall. Všechny__vectorcallfunkce musí mít prototypy.
Zkompilovat jako
Vyberte možnost jazyka kompilace pro zdrojové soubory. Načte /TC, /TP, /rozhraní, /internalPartition, nebo /exportHeader možnosti.
Možnosti
- Výchozí – výchozí.
-
Zkompilovat jako kód jazyka C (
/TC) – Zkompilujte zadané zdrojové soubory jako kód jazyka C. Ve výchozím nastavení se soubory s příponou.ckompilují jako C. -
Zkompilovat jako kód C++ (
/TP) – Zkompilujte zadané zdrojové soubory jako kód C++. Ve výchozím nastavení jsou jako C++ kompilovány všechny zdrojové soubory, které nemají příponu.c,.ixx,.cppmnebo.h, nebo které nemají žádnou příponu. -
Zkompilovat jako kód modulu C++ (
/interface) – Zkompilujte zadané zdrojové soubory jako kód modulu C++. Ve výchozím nastavení se soubory s příponou.cppmnebo.ixxkompilují jako kód modulu jazyka C++. -
Zkompilovat jako interní oddíl modulu C++ (
/internalPartition) – Zkompilujte zadané zdrojové soubory jako interní oddíl modulu C++. -
Zkompilovat jako jednotku hlaviček C++ (
/exportHeader) – Zkompilujte zadané zdrojové soubory jako jednotku hlaviček C++. Ve výchozím nastavení se soubory s příponou.hnebo bez přípony kompilují jako jednotky hlaviček.
Zakázat konkrétní upozornění
Zakažte zadaná čísla upozornění. Čísla upozornění umístěte do seznamu oddělených středníkem. Nastaví /wd<číslo>.
Vynucený soubor zahrnutí
Určuje jeden nebo více vynucených souborů k zahrnutí. Nastaví /FI<název>.
Vynucený soubor #using
Určuje jeden nebo více vynucených #using souborů. Nastaví /FU<název>.
Zobrazit položky
Vygeneruje seznam souborů zahrnutí s výstupem kompilátoru. Množiny /showIncludes.
Použití úplných cest
Používejte v diagnostických zprávách úplné cesty. Množiny /FC.
Vynechání výchozího názvu knihovny
Určuje vynechání výchozích názvů knihoven v .obj souborech. Množiny /Zl.
Zasílání zpráv o vnitřních chybách kompilátoru
Poznámka:
Tato možnost je zastaralá. Počínaje systémem Windows Vista je zasílání zpráv o chybách řízeno nastavením Zasílání zpráv o chybách systému Windows (WER).
Zpracování konkrétních upozornění jako chyb
Zpracovává konkrétní upozornění kompilátoru jako chybu, kde n je upozornění kompilátoru.
Další možnosti
Další možnosti.