Možnosti kompilátoru uvedené podle kategorie

Tento článek obsahuje kategorický seznam možností kompilátoru. Abecední seznam najdete v tématu Možnosti kompilátoru uvedené abecedně.

Optimalizace

Možnost Účel
/favor:<blend|AMD64|INTEL64|ATOM> Vytvoří kód, který je optimalizovaný pro zadanou architekturu nebo pro řadu architektur.
/O1 Vytvoří malý kód.
/O2 Vytvoří rychlý kód.
/Ob<n> Ovládací prvky vložené rozšíření.
/Od Zakáže optimalizaci.
/Og Zastaralé Používá globální optimalizace.
/Oi[-] Generuje vnitřní funkce.
/Os Upřednostňuje malý kód.
/Ot Dává přednost rychlému kódu.
/Ox Podmnožina /O2, která neobsahuje /GF nebo /Gy.
/Oy Vynechá ukazatel rámce. (pouze x86)

Generování kódu

Možnost Účel
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> Minimální požadavky na architekturu procesoru IA32, SSE a SSE2 jsou pouze x86.
/clr Vytvoří výstupní soubor, který se spustí v modulu CLR (Common Language Runtime).
/clr:implicitKeepAlive- Vypněte implicitní emise System::GC::KeepAlive(this).
/clr:initialAppDomain Povolte počáteční chování AppDomain v jazyce Visual C++ 2002.
/clr:netcore Vytváří sestavení cílící na modul runtime .NET Core.
/clr:noAssembly Nevytvářet sestavení.
/clr:nostdimport Neimportujte žádná požadovaná sestavení implicitně.
/clr:nostdlib Při hledání sestavení ignorujte systémový adresář rozhraní .NET Framework.
/clr:pure Vytvoří výstupní soubor jen pro IL (bez nativního spustitelného kódu).
/clr:safe Vytvoří pouze ověřitelný výstupní soubor IL.
/EHa Povolte zpracování výjimek C++ (s výjimkami SEH).
/EHc Výchozí hodnotou extern "C" je nothrow.
/EHr Vždy vygenerujte noexcept kontroly ukončení modulu runtime.
/EHs Povolte zpracování výjimek C++ (bez výjimek SEH).
/fp:contract Při generování kódu zvažte kontrakty s plovoucí desetinou čárkou.
/fp:except[-] Při generování kódu zvažte výjimky s plovoucí desetinou čárkou.
/fp:fast "rychlý" model s plovoucí desetinou čárkou; výsledky jsou méně předvídatelné.
/fp:precise "přesný" model s plovoucí desetinou čárkou; výsledky jsou předvídatelné.
/fp:strict "striktní" model s plovoucí desetinou čárkou (implikuje /fp:except).
/fpcvt:BC Zpětně kompatibilní s plovoucí desetinou čárkou na celočíselné převody bez znaménka
/fpcvt:IA Intel nativní chování převodu celých čísel s plovoucí deseti čárkou na nepodepsané celé číslo
/fsanitize Umožňuje kompilaci instrumentace sanitizátoru, jako je AddressSanitizer.
/fsanitize-coverage Umožňuje kompilaci instrumentace pokrytí kódu pro knihovny, jako je LibFuzzer.
/GA Optimalizuje aplikace pro Windows.
/Gd __cdecl Používá konvenci volání. (pouze x86)
/Ge Zastaralé Aktivuje sondy zásobníku.
/GF Povolí sdružování řetězců.
/Gh Volání funkce _penterháku .
/GH Volání funkce _pexitháku .
/GL[-] Umožňuje optimalizaci celého programu.
/Gm[-] Zastaralé Povolí minimální opětovné sestavení.
/Gr __fastcall Používá konvenci volání. (pouze x86)
/GR[-] Povolí informace o typu runtime (RTTI).
/GS[-] Kontroluje zabezpečení vyrovnávací paměti.
/Gs[n] Řídí sondy zásobníku.
/GT Podporuje zabezpečení vláken pro data přidělená pomocí statického úložiště s vlákny v místním úložišti.
/Gu[-] Zajistěte, aby různé funkce měly odlišné adresy.
/guard:cf[-] Přidá kontroly zabezpečení ochrany toku řízení.
/guard:ehcont[-] Povolí metadata pokračování EH.
/Gv __vectorcall Používá konvenci volání. (pouze x86 a x64)
/Gw[-] Umožňuje globální optimalizaci dat v rámci celého programu.
/GX[-] Zastaralé Umožňuje synchronní zpracování výjimek. Místo toho použijte /EH.
/Gy[-] Povolí propojení na úrovni funkce.
/Gz __stdcall Používá konvenci volání. (pouze x86)
/GZ Zastaralé Umožňuje rychlé kontroly. (Stejné jako /RTC1)
/homeparams Vynutí, aby se parametry předávané v registrech zapisovaly do jejich umístění v zásobníku po zadání funkce. Tato možnost kompilátoru je určena pouze pro kompilátory x64 (nativní a křížové kompilace).
/hotpatch Vytvoří image s možností opravy za běhu.
/jumptablerdata Umístěte do oddílu .rdata jump tabulky příkazů switch case.
/Qfast_transcendentals Generuje rychlé entiententní.
/QIfist Zastaralé Potlačí volání pomocné funkce _ftol , pokud je vyžadován převod z typu s plovoucí desetinou čárkou na celočíselný typ. (pouze x86)
/Qimprecise_fwaits Odebere příkazy fwait uvnitř try bloků.
/QIntel-jcc-erratum Snižuje dopad na výkon aktualizace mikrokódu Intel JCC erratum.
/Qpar Umožňuje automatickou paralelizaci smyček.
/Qpar-report:n Povoluje úrovně generování sestav pro automatickou paralelizaci.
/Qsafe_fp_loads Používá celočíselné instrukce pro přesunutí hodnot s plovoucí desetinou čárkou a zakáže určité optimalizace zatížení s plovoucí desetinou čárkou.
/Qspectre[-] Povolení zmírnění rizik pro CVE 2017-5753 pro třídu útoků Spectre
/Qspectre-load Vygenerujte instrukce serializace pro každou instrukci načtení.
/Qspectre-load-cf Vygenerujte instrukce serializace pro všechny instrukce toku řízení, které načítají paměť.
/Qvec-report:n Umožňuje vytváření sestav pro automatickou vektorizaci.
/RTC1 Povolte rychlé kontroly za běhu (ekvivalentní /RTCsu).
/RTCc Převod na menší kontroly typů za běhu
/RTCs Povolte kontroly modulu runtime zásobníku.
/RTCu Povolí neinicializované místní kontroly využití.
/volatile:iso U nestálých přístupů není zaručena sémantika získání/uvolnění.
/volatile:ms Získání/uvolnění sémantiky zaručené u nestálých přístupů.

Výstupní soubory

Možnost Účel
/doc Zpracovává komentáře dokumentace k souboru XML.
/FA Nakonfiguruje soubor výpisu sestavení.
/Fa Vytvoří soubor výpisu sestavení.
/Fd Přejmenuje soubor databáze programu.
/Fe Přejmenuje spustitelný soubor.
/Fi Určuje název předzpracovaného výstupního souboru.
/Fm Vytvoří soubor mapování.
/Fo Vytvoří soubor objektu.
/Fp Určuje předkompilovaný název souboru hlaviček.
/FR, /Fr Vygenerované .sbr soubory prohlížeče. /Fr je zastaralý.
/Ft<dir> Umístění souborů hlaviček vygenerovaných pro #import.

Preprocesor

Možnost Účel
/AI<dir> Určuje adresář pro vyhledávání pro překlad odkazů na soubory předané direktivě #using .
/C Zachovává komentáře během předběžného zpracování.
/D<name>{=|#}<text> Definuje konstanty a makra.
/E Zkopíruje výstup preprocesoru do standardního výstupu.
/EP Zkopíruje výstup preprocesoru do standardního výstupu.
/FI<file> Předzpracuje zadaný soubor include.
/FU<file> Vynutí použití názvu souboru, jako by byl předán direktivě #using .
/Fx Sloučí vložený kód se zdrojovým souborem.
/I<dir> Vyhledá v adresáři soubory zahrnutí.
/P Zapíše výstup preprocesoru do souboru.
/PD Vytiskněte všechny definice maker.
/PH Generování #pragma file_hash při předběžném zpracování
/U<name> Odebere předdefinované makro.
/u Odebere všechna předdefinovaná makra.
/X Ignoruje standardní adresář zahrnutí.

Jednotky hlaviček/moduly

Možnost Účel
/exportHeader Vytvořte soubory jednotek hlaviček (.ifc) určené vstupními argumenty.
/headerUnit Určete, kde má být nalezen soubor jednotky záhlaví (.ifc) pro zadanou hlavičku.
/headerName Sestavte jednotku záhlaví ze zadané hlavičky.
/ifcOutput Zadejte název výstupního souboru nebo adresář pro sestavené .ifc soubory.
/interface Zachází se vstupním souborem jako s jednotkou rozhraní modulu.
/internalPartition Zachází se vstupním souborem jako s interní jednotkou oddílu.
/reference Použijte pojmenovaný modul IFC.
/scanDependencies Výpis závislostí modulů a jednotek hlaviček ve standardním formátu JSON jazyka C++.
/sourceDependencies Zobrazí seznam všech závislostí na úrovni zdroje.
/sourceDependencies:directives Výpis závislostí jednotek a modulů záhlaví
/translateInclude Považovat za #includeimport.

Jazyk

Možnost Účel
/await Povolte rozšíření korutinu (obnovitelné funkce).
/await:strict Povolte standardní podporu korutin c++20 ve starších jazykových verzích.
/constexpr:backtrace<N> Zobrazení N constexpr vyhodnocení v diagnostice (výchozí hodnota: 10)
/constexpr:depth<N> Limit hloubky rekurze pro constexpr vyhodnocení (výchozí hodnota: 512).
/constexpr:steps<N> Ukončení constexpr vyhodnocení po N krocích (výchozí: 100000)
/openmp #pragma omp Povolí ve zdrojovém kódu.
/openmp:experimental Povolte jazykové rozšíření OpenMP 2.0 a vyberte jazyková rozšíření OpenMP 3.0 nebo novější.
/openmp:llvm Rozšíření jazyka OpenMP pomocí modulu runtime LLVM.
/permissive[-] Nastavte režim standardní shody.
/std:c++14 C++14 standard ISO/IEC 14882:2014 (výchozí).
/std:c++17 C++17 standard ISO/IEC 14882:2017.
/std:c++20 C++20 standard ISO/IEC 14882:2020.
/std:c++latest Nejnovější funkce verze Preview konceptu C++.
/std:c11 C11 standard ISO/IEC 9899:2011.
/std:c17 C17 standard ISO/IEC 9899:2018.
/std:clatest Nejnovější funkce konceptu C standard Preview.
/vd{0|1|2} Potlačí nebo povolí skryté vtordisp členy třídy.
/vmb Používá nejlepší základ pro ukazatele na členy.
/vmg Používá úplnou generalitu pro ukazatele na členy.
/vmm Deklaruje více dědičnosti.
/vms Deklaruje jednoduchou dědičnost.
/vmv Deklaruje virtuální dědičnost.
/Z7 Generuje informace o ladění kompatibilní s C 7.0.
/Za Zakáže některá jazyková rozšíření C89 v kódu jazyka C.
/Zc:__cplusplus[-] __cplusplus Povolte makro, aby hlásilo podporovaný standard (ve výchozím nastavení je vypnuto).
/Zc:__STDC__ Povolením __STDC__ makra nahlásit standard jazyka C je podporován (ve výchozím nastavení je vypnuto).
/Zc:alignedNew[-] Povolte dynamické přidělování zarovnané do C++17 (ve výchozím nastavení v C++17).
/Zc:auto[-] Vynucujte nový význam standardu C++ pro auto (ve výchozím nastavení je zapnutý).
/Zc:char8_t[-] Povolení nebo zakázání nativní u8 podpory literálů C++20 jako const char8_t (ve výchozím nastavení vypnuto, s výjimkou pod /std:c++20).
/Zc:enumTypes[-] Povolte standardní pravidla C++ pro odvozené enum základní typy (mimo výchozí hodnotu b, nikoli implicitně /permissive-).
/Zc:externC[-] Vynucujte standardní pravidla jazyka C++ pro extern "C" funkce (odvozené /permissive-).
/Zc:externConstexpr[-] Povolte externí propojení pro constexpr proměnné (ve výchozím nastavení je vypnuto).
/Zc:forScope[-] Vynucujte pravidla oborů standardu C++ for (ve výchozím nastavení je zapnutá).
/Zc:gotoScope Vynucujte standardní pravidla jazyka C++ goto kolem inicializace místních proměnných (odvozená /permissive-).
/Zc:hiddenFriend[-] Vynutit skrytá pravidla C++ standardu C++ (odvozená /permissive-)
/Zc:implicitNoexcept[-] Povolit implicitní noexcept u požadovaných funkcí (ve výchozím nastavení je zapnuto).
/Zc:inline[-] Odeberte neodkazované funkce nebo data, pokud jsou COMDAT nebo mají pouze interní propojení (ve výchozím nastavení je vypnuté).
/Zc:lambda[-] Povolte nový procesor lambda pro syntaktické kontroly v obecných lambdach v režimu shody.
/Zc:noexceptTypes[-] Vynucujte pravidla C++17 noexcept (ve výchozím nastavení v C++17 nebo novějším).
/Zc:nrvo[-] Povolte volitelnou kopii a přesuňte elizi (ve výchozím nastavení v části /O2, /permissive-nebo /std:c++20 novější).
/Zc:preprocessor[-] Použijte nový preprocesor odpovídající (ve výchozím nastavení vypnutý s výjimkou C11/C17).
/Zc:referenceBinding[-] Dočasný objekt UDT nebude svázat s odkazem, který není const lvalue (ve výchozím nastavení vypnutý).
/Zc:rvalueCast[-] Vynutit pravidla explicitního převodu standardního jazyka C++ (ve výchozím nastavení je vypnutá).
/Zc:sizedDealloc[-] Povolte funkce zrušení přidělení globální velikosti C++14 (ve výchozím nastavení).
/Zc:strictStrings[-] Zakažte řetězcový literál nebo char*wchar_t* převod (ve výchozím nastavení je vypnutý).
/Zc:templateScope[-] Vynucujte pravidla stínování standardních parametrů šablony C++ (ve výchozím nastavení je vypnutá).
/Zc:ternary[-] Vynucujte pravidla podmíněného operátoru u typů operandů (ve výchozím nastavení vypnuto).
/Zc:threadSafeInit[-] Povolte místní statickou inicializaci bezpečnou pro přístup z více vláken (ve výchozím nastavení je zapnutá).
/Zc:throwingNew[-] Předpokládejme operator new , že dojde k selhání (ve výchozím nastavení vypnuto).
/Zc:tlsGuards[-] Generování kontrol runtime pro inicializaci proměnných PROTOKOLU TLS (ve výchozím nastavení)
/Zc:trigraphs Povolte trigrafy (zastaralé, ve výchozím nastavení vypnuté).
/Zc:twoPhase[-] Použijte nekonformní chování analýzy šablony (ve výchozím nastavení vyhovuje).
/Zc:wchar_t[-] wchar_t je nativní typ, nikoli typedef (ve výchozím nastavení).
/Zc:zeroSizeArrayNew[-] Volání člena new/delete pro 0-velikost pole objektů (ve výchozím nastavení).
/Ze Zastaralé Povolí jazyková rozšíření C89.
/Zf Zlepšuje dobu generování PDB v paralelních buildech.
/ZH:[MD5|SHA1|SHA_256] Určuje MD5, SHA-1 nebo SHA-256 pro kontrolní součty v informacích o ladění.
/ZI Obsahuje informace o ladění v programové databázi kompatibilní s funkcí Upravit a pokračovat. (pouze x86)
/Zi Generuje úplné informace o ladění.
/Zl Odebere z souboru výchozí název .obj knihovny.
/Zo[-] Vygenerujte bohatší informace o ladění pro optimalizovaný kód.
/Zp[n] Zabalí členy struktury.
/Zs Kontroluje pouze syntaxi.
/ZW Vytvoří výstupní soubor, který se spustí na prostředí Windows Runtime.

Propojení

Možnost Účel
/F Nastaví velikost zásobníku.
/LD Vytvoří dynamickou knihovnu.
/LDd Vytvoří ladicí dynamickou knihovnu propojení.
/link Předá zadanou možnost do linku.
/LN Vytvoří jazyk MSIL .netmodule.
/MD Zkompiluje vytvoření vícevláknové knihovny DLL pomocí knihovny MSVCRT.lib.
/MDd Zkompiluje pro vytvoření vícevláknové knihovny DLL pomocí knihovny MSVCRTD.lib.
/MT Zkompiluje vytvoření vícevláknového spustitelného souboru pomocí knihovny LIBCMT.lib.
/MTd Zkompiluje vytvoření ladicího spustitelného souboru s více vlákny pomocí knihovny LIBCMTD.lib.

Různé

Možnost Účel
/? Zobrazí seznam možností kompilátoru.
@ Určuje soubor odpovědi.
/analyze Povolí analýzu kódu.
/bigobj Zvýší počet adresovatelných oddílů v souboru .obj.
/c Zkompiluje se bez propojení.
/cgthreads Určuje počet vláken cl.exe , která se mají použít pro optimalizaci a generování kódu.
/errorReport Zastaralé nastavení Zasílání zpráv o chybách systému Windows (WER) – hlášení chyb.
/execution-charset Nastavte znakové sady spuštění.
/fastfail Povolte režim rychlého selhání.
/FC Zobrazí úplnou cestu k souborům zdrojového kódu předané cl.exe v diagnostickém textu.
/FS Vynutí zápisy do souboru PDB serializovat prostřednictvím MSPDBSRV.EXE.
/H Zastaralé Omezuje délku externích (veřejných) názvů.
/HELP Zobrazí seznam možností kompilátoru.
/J Změní výchozí char typ.
/JMC Podporuje nativní ladění C++ Just My Code.
/kernel Kompilátor a linker vytvoří binární soubor, který lze spustit v jádru Windows.
/MP Vytvoří současně více zdrojových souborů.
/nologo Potlačí zobrazení nápisu pro přihlášení.
/presetPadding Nulové inicializace odsazení pro typy tříd založených na zásobníku.
/showIncludes Zobrazí seznam všech souborů zahrnutí během kompilace.
/source-charset Nastavení zdrojové znakové sady
/Tc Určuje zdrojový soubor jazyka C.
/TC Určuje, že všechny zdrojové soubory jsou C.
/Tp Určuje zdrojový soubor C++.
/TP Určuje, že všechny zdrojové soubory jsou C++.
/utf-8 Nastavte zdrojové a spouštěcí znakové sady na UTF-8.
/V Zastaralé Nastaví řetězec verze.
/validate-charset Ověřte soubory UTF-8 pouze pro kompatibilní znaky.
/volatileMetadata Generovat metadata pro přístup k nestálé paměti.
/Yc Vytvořte .PCH soubor.
/Yd Zastaralé Umístí úplné informace o ladění ve všech souborech objektů. Místo toho použijte /Zi.
/Yl Vloží odkaz PCH při vytváření knihovny ladění.
/Yu Během sestavování se používá předkompilovaný soubor hlaviček.
/Y- Ignoruje všechny ostatní možnosti kompilátoru předkompilovaných hlaviček v aktuálním buildu.
/Zm Určuje předkompilovaný limit přidělení paměti hlavičky.

Diagnostika

Možnost Účel
/diagnostics:caret[-] Formát diagnostiky: vytiskne sloupec a označenou čáru zdroje.
/diagnostics:classic Použijte starší formát diagnostiky.
/diagnostics Formát diagnostiky: vytiskne informace o sloupcích.
/external:anglebrackets Zacházet se všemi hlavičkami, které jsou zahrnuté jako <> externí.
/external:env:<var> Zadejte proměnnou prostředí s umístěními externích hlaviček.
/external:I <path> Zadejte umístění externích hlaviček.
/external:templates[-] Vyhodnoťte úroveň upozornění napříč řetězem vytváření instancí šablony.
/external:W<n> Nastavte úroveň upozornění pro externí hlavičky.
/options:strict Nerozpoznané možnosti kompilátoru jsou chyby.
/sdl Povolte další funkce a upozornění zabezpečení.
/w Zakažte všechna upozornění.
/W0, /W1, /W2, , /W3/W4 Nastavte úroveň upozornění výstupu.
/w1<n>, /w2<n>, , /w3<n>/w4<n> Nastavte úroveň upozornění pro zadané upozornění.
/Wall Povolte všechna upozornění, včetně upozornění, která jsou ve výchozím nastavení zakázaná.
/wd<n> Zakažte zadané upozornění.
/we<n> Zachází se zadaným upozorněním jako s chybou.
/WL Povolte diagnostiku jednoho řádku pro chybové a upozorňující zprávy při kompilaci zdrojového kódu jazyka C++ z příkazového řádku.
/wo<n> Zobrazí se zadané upozornění pouze jednou.
/Wv:xx[.yy[.zzzzz]] Zakažte upozornění zavedená po zadané verzi kompilátoru.
/WX Zacházejte s upozorněními jako s chybami.

Experimentální možnosti

Experimentální možnosti mohou být podporovány pouze některými verzemi kompilátoru. Mohou se také chovat odlišně v různých verzích kompilátoru. Nejlepší nebo pouze dokumentace k experimentálním možnostem je na blogu týmu Microsoft C++.

Možnost Účel
/experimental:log Umožňuje experimentální strukturovaný výstup SARIF.
/experimental:module Umožňuje podporu experimentálního modulu.

Zastaralé a odebrané možnosti kompilátoru

Možnost Účel
/clr:noAssembly Zastaralé Místo toho použijte /LN (vytvořit modul MSIL).
/errorReport Zastaralé Zasílání zpráv o chybách se řídí nastavením Zasílání zpráv o chybách systému Windows (WER).
/experimental:preprocessor Zastaralé Umožňuje experimentální podporu preprocesoru odpovídajících. Použití /Zc:preprocessor
/Fr Zastaralé Vytvoří informační soubor procházení bez místních proměnných.
/Ge Zastaralé Aktivuje sondy zásobníku. Zapnuto ve výchozím nastavení.
/Gm Zastaralé Povolí minimální opětovné sestavení.
/GX Zastaralé Umožňuje synchronní zpracování výjimek. Místo toho použijte /EH.
/GZ Zastaralé Umožňuje rychlé kontroly. Místo toho použijte /RTC1.
/H Zastaralé Omezuje délku externích (veřejných) názvů.
/Og Zastaralé Používá globální optimalizace.
/QIfist Zastaralé Po použití k určení způsobu převodu z typu s plovoucí desetinou čárkou na celočíselný typ.
/V Zastaralé .obj Nastaví řetězec verze souboru.
/Wp64 Zastaralé. Detekuje 64bitové problémy s přenositelností.
/Yd Zastaralé Umístí úplné informace o ladění ve všech souborech objektů. Místo toho použijte /Zi.
/Zc:forScope- Zastaralé Zakáže shodu v oboru smyčky.
/Ze Zastaralé Povolí jazyková rozšíření.
/Zg Odebrání v sadě Visual Studio 2015 Generuje prototypy funkcí.

Viz také

Referenční dokumentace k sestavení jazyka C/C++
Možnosti kompilátoru MSVC
Syntaxe příkazového řádku kompilátoru MSVC