Stránky vlastností C/C++

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íkem (';' ). 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 existuje více adresářů, oddělte adresáře středníkem (';' ). 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 existuje více adresářů, oddělte adresáře středníkem (';' ). 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 existuje více adresářů, oddělte adresáře středníkem (';' ). 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 existuje více adresářů, oddělte adresáře středníkem (';' ). Nastaví možnost kompilátoru /headerUnit .

Vyhledat zdroje závislostí modulů

Pokud je nastavena hodnota Ano, kompilátor prohledá všechny zdroje C++, nejen rozhraní modulu a zdroje jednotek hlaviček, pro závislosti jednotek modulů a 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. V kombinaci s příkazem Translate Includes to Imports se všechny hlavičkové soubory zadané v header-units.json souboru ve stejném adresáři, jako je soubor hlaviček, zkompiluje do jednotky hlaviček.

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 nastavena hodnota Ano, kompilátor považuje direktivu #include za direktivu import , pokud jsou splněny určité podmínky: Soubor hlavičky je zadán v header-units.json souboru ve stejném adresáři a zkompilovaná jednotka hlaviček ( .ifc soubor) je k dispozici pro soubor hlaviček. 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ů. Při použití s Prohledávání zdrojů pro závislosti modulů, kompilátor automaticky najde všechny soubory hlaviček, které lze zkompilovat do hlavičkových jednotek. 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 k skupině /clr přepínačů.

Možnosti

  • Žádná podpora modulu Common Language RunTime – Žádná podpora modulu RunTime pro běžný jazyk
  • 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í Windows Runtime

Využít rozšíření jazyků 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 nejlepší 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ě. A výstupem je příslušný řádek zdrojového kódu s kurzorem, který označuje problémový 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ší doporučené kontroly životního cyklu vývoje zabezpečení (SDL); zahrnuje povolení dalších zabezpečených funkcí generování kódu a umožňuje další upozornění související se zabezpečením 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

Výběr možnosti pro optimalizaci kódu; zvolte Vlastní, pokud chcete použít konkrétní možnosti optimalizace. Sady /Od, /O1, /O2.

Možnosti

  • Vlastní – vlastní optimalizace
  • Zakázáno – Zakažte optimalizaci.
  • Maximální optimalizace (velikost upřednostnění) – ekvivalent /Os /Oy /Ob2 /Gs /GF /Gy
  • Maximální optimalizace (rychlost upřednostnění) – ekvivalent /Oi /Ot /Oy /Ob2 /Gs /GF /Gy
  • Optimalizace (upřednostnění rychlosti) – ekvivalent /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 inline a další funkce, které kompilátor zvolí. (Rozšíření probíhá podle uvážení kompilátoru, často označované jako automatické inlinování.)

Povolení vnitřních funkcí

Povolí vnitřní funkce. Použití vnitřních funkcí generuje rychleji, ale pravděpodobně větší kód. Množiny /Oi.

Upřednostnění velikosti nebo rychlosti

Zda upřednostňovat velikost kódu nebo rychlost kódu; Musí být zapnutá globální optimalizace. 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í.)
  • Žá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 optimalizaci paměťového prostoru při použití vláken a přístupu k vláknově lokálnímu úložišti. 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

Potlačí sekci komentářů ve zdrojovém kódu; vyžaduje nastavení alespoň jedné z možností Preprocessing. 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ší verzi preprocesoru, nastavte tuto vlastnost na hodnotu Ne.

Vlastnosti generování kódu C/C++

Povolení sdružování řetězců

Kompilátor vytvoří v imagi programu pouze jednu kopii identických řetězců jen pro čtení. Výsledkem je menší programy, optimalizace označovaná jako sdružování řetězců. /O1, /O2 a /ZI automaticky nastaví /GF možnost.

Povolit minimální opětovné sestavení

Umožňuje minimální opětovné sestavení, které určuje, zda se mají překompilovat zdrojové soubory C++, které zahrnují změněné definice tříd C++, uložené v souborech hlaviček .h .

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 říká kompilátoru, aby předpokládal, že externí funkce jazyka C nikdy nevyvolají výjimku jazyka C++. Množiny /EHsc.
  • Ano s funkcemi Extern C – model zpracování výjimek, který zachytává pouze výjimky jazyka C++ a vede ke zpracování, které předpokládá, že funkce Extern C mohou vyvolávat výjimku. Množiny /EHs.
  • Ne – Bez zpracování výjimek.

Kontrola malého typu

Povolte kontrolu převodu na menší typy, nekompatibilní s jakýmkoli jiným typem optimalizace než laděním. Množiny /RTCc.

Základní kontroly modulu runtime

Povolte základní kontroly chyb za běhu nekompatibilní s jakýmkoli jiným typem optimalizace než laděním. Sady /RTCs, /RTCu, /RTC1.

Možnosti

  • Rámce zásobníku – Umožňuje kontrolu chyb za běhu 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

Zadejte 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 runtime.
  • Vícevláknové ladění - definuje _DEBUG a _MT. Tato možnost také způsobí, že kompilátor umístí název LIBCMTD.lib knihovny do .obj souboru, aby linker použil LIBCMTD.lib k překladu externích symbolů.
  • Vícevláknová knihovna DLL – způsobí, že vaše aplikace použije vícevláknovou a specifickou pro DLL verzi knihovny času běhu. Definuje _MT a _DLL a způsobí, že kompilátor umístí knihovnu MSVCRT.lib do souboru .obj.
  • Vícevláknová ladicí knihovna DLL – Definuje _DEBUG, _MT a způsobí, že vaše aplikace bude používat verzi běhové knihovny specifickou pro ladění, vícevláknovou a DLL. Také způsobí, že kompilátor umístí název MSVCRTD.lib knihovny do .obj souboru.

Zarovnání strukturovaných členů

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í).
  • 16 Bajty - Balí struktury na šestnácti bajtových hranicích.
  • Výchozí – Výchozí nastavení zarovnání

Kontrola zabezpečení

Kontrola zabezpečení pomáhá detekovat přetečení zásobníku vyrovnávací paměti, běžný pokus o útok na zabezpečení programu.

Možnosti

  • Zakázat kontrolu zabezpečení - Zakázat kontrolu zabezpečení. Množiny /GS-.
  • Povolit kontrolu zabezpečení – Povolit kontrolu zabezpečení Množiny /GS.

Ochrana řízení toku (Control Flow Guard)

Kontrola zabezpečení ochrany pomáhá zjišťovat pokusy o odeslání do nelegálního bloku kódu.

Možnosti

  • Ano – Aktivujte kontrolu zabezpečení se sadami /guard:cfochrany.
  • 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 pro architekturu IA-32. A vylepšení AVX a AVX2 na 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

  • 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:strict způsobí, že fp_contract je vypnutý a fenv_access je zapnutý. /fp:except je implicitní a lze ho zakázat explicitním /fp:except-zadáním . Při použití s /fp:except-, /fp:strict vynucuje 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 – Povolení funkce zmírnění rizik 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

Umožňuje podepsané návraty funkcí, které pomáhají rozpoznat a zabránit pokusům o přesměrování do neplatných bloků z návratů funkcí. 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

Po zadání se typ wchar_t 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

Po zadání už kompilátor negeneruje informace o symbolech pro neodkazovaný kód a data.

Vynucení pravidel převodu typů

Slouží k identifikaci typu odkazu rvalue v důsledku operace přetypování podle standardu C++11.

Aktivovat informace o typu běhového času

Přidá kód pro kontrolu typů objektů C++ za běhu (informace o typech za běhu, nebo 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 povolí. 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 volba 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 povolí. 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 volba 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++

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čky, který se má použít při vytváření nebo použití předkompilovaného souboru hlaviček. 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řte soubor se seznamem rozšířených atributů vložených 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 z assembleru – asm 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 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 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ý má přepsat výchozí název souboru objektu; může 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; také určuje základní název požadovaného souboru IDB generovaného kompilátorem; může 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 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á pro 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 úroveň informací o procházení v .bsc souboru. Množiny /FR.

Procházet informační soubor

Určuje volitelný název informačního souboru prohlížeče. Nastaví /FR<název>.

Vlastnosti externích zahrnutí 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 není zadáno, použije se nastavení analýzy kódu. 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 __cdecl konvenci volání pro všechny funkce s výjimkou členských funkcí jazyka C++ a funkcí označených __stdcall nebo __fastcall.
  • __fastcall - Určuje __fastcall konvenci volání pro všechny funkce s výjimkou členských funkcí jazyka C++ a funkcí označených __cdecl nebo __stdcall. Všechny __fastcall funkce musí mít prototypy.
  • __stdcall - Určuje __stdcall konvenci volání pro všechny funkce s výjimkou členských funkcí jazyka C++ a funkcí označených __cdecl nebo __fastcall. Všechny __stdcall funkce musí mít prototypy.
  • __vectorcall - Určuje __vectorcall konvenci volání pro všechny funkce s výjimkou členských funkcí jazyka C++ a funkcí označených __cdecl, __fastcallnebo __stdcall. Všechny __vectorcall funkce musí mít prototypy.

Zkompilovat jako

Vyberte možnost zkompilovat jazyk 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 .c kompilují jako C.
  • Zkompilovat jako kód C++ (/TP) – Zkompilujte zadané zdrojové soubory jako kód C++. Ve výchozím nastavení se všechny zdrojové soubory, které nemají příponu .c, .ixx, .cppm.hkompilují jako C++.
  • 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 .ixx nebo .cppm kompilují jako kód modulu 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 .h nebo 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í

jeden nebo více povinných zahrnutých souborů. 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

Neobsahuje výchozí názvy 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

Zachází s konkrétním upozorněním kompilátoru jako s chybou, kdy n je upozornění kompilátoru.

Další možnosti

Další možnosti.