Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln innehåller en kategorisk lista över kompilatoralternativ. En alfabetisk lista finns i Kompilatoralternativ listade alfabetiskt.
Optimering
Alternativ | Avsikt |
---|---|
/dynamicdeopt |
Aktivera C++ dynamisk felsökning (förhandsversion) för att felsöka optimerad kod som om den hade kompilerats avoptimerad. |
/favor:<blend|AMD64|INTEL64|ATOM> |
Genererar kod som är optimerad för en angiven arkitektur eller för ett antal arkitekturer. |
/O1 |
Skapar liten kod. |
/O2 |
Skapar snabb kod. |
/Ob<n> |
Styr infogad expansion. |
/Od |
Inaktiverar optimering. |
/Og |
Föråldrad. Använder globala optimeringar. |
/Oi[-] |
Genererar inbyggda funktioner. |
/Os |
Gynnar liten kod. |
/Ot |
Föredrar snabb kod. |
/Ox |
En delmängd av /O2 som inte innehåller /GF eller /Gy. |
/Oy |
Utelämnar bildrutepekaren. (endast x86) |
Kodgenerering
Alternativ | Avsikt |
---|---|
/arch |
Minimikrav för CPU-arkitektur. |
/clr |
Skapar en utdatafil som ska köras på den vanliga språkkörningen. |
/clr:implicitKeepAlive- |
Inaktivera implicit utsläpp av System::GC::KeepAlive(this) . |
/clr:initialAppDomain |
Aktivera det inledande AppDomain-beteendet för Visual C++ 2002. |
/clr:netcore |
Skapa sammansättningar för .NET Core-körning. |
/clr:noAssembly |
Skapa inte en sammansättning. |
/clr:nostdimport |
Importera inte några obligatoriska sammansättningar implicit. |
/clr:nostdlib |
Ignorera systemets .NET Framework-katalog när du söker efter sammansättningar. |
/clr:pure |
Skapa en il-only-utdatafil (ingen intern körbar kod). |
/clr:safe |
Skapa en il-only-verifierbar utdatafil. |
/EHa |
Aktivera C++-undantagshantering (med SEH-undantag). |
/EHc |
extern "C" standardvärdet nothrow . |
/EHr |
Generera alltid noexcept körningsavslutskontroller. |
/EHs |
Aktivera C++-undantagshantering (inga SEH-undantag). |
/feature |
Aktivera arkitekturfunktioner.17.10 |
/fp:contract |
Överväg flyttalskontraktioner när du genererar kod. |
/fp:except[-] |
Överväg undantag från flyttal när du genererar kod. |
/fp:fast |
"snabb" flyttalsmodell; resultaten är mindre förutsägbara. |
/fp:precise |
"exakt" flyttalsmodell; resultaten är förutsägbara. |
/fp:strict |
"strikt" flyttalsmodell (innebär /fp:except ). |
/fpcvt:BC |
Bakåtkompatibel flyttal till osignerade heltalskonverteringar. |
/fpcvt:IA |
Intels inbyggda flyttals till ett icke-signerat heltalskonverteringsbeteende. |
/fsanitize |
Möjliggör kompilering av sanitizer-instrumentation, till exempel AddressSanitizer. |
/fsanitize-coverage |
Möjliggör kompilering av kodtäckningsinstrumentation för bibliotek som LibFuzzer. |
/GA |
Optimerar för Windows-program. |
/Gd |
Använder __cdecl -anropskonventionen. (endast x86) |
/Ge |
Föråldrad. Aktiverar stackavsökningar. |
/GF |
Aktiverar strängpooler. |
/Gh |
Anropar hook-funktionen _penter . |
/GH |
Anropar hook-funktionen _pexit . |
/GL[-] |
Aktiverar hela programoptimeringen. |
/Gm[-] |
Föråldrad. Möjliggör minimal återskapande. |
/Gr |
Använder __fastcall -anropskonventionen. (endast x86) |
/GR[-] |
Aktiverar information om körningstyp (RTTI). |
/GS[-] |
Kontrollerar buffertsäkerhet. |
/Gs[n] |
Styr stackavsökningar. |
/GT |
Stöder fibersäkerhet för data som allokeras med hjälp av statisk trådlokal lagring. |
/Gu[-] |
Se till att distinkta funktioner har distinkta adresser. |
/guard:cf[-] |
Lägger till säkerhetskontroller för kontrollflödesskydd. |
/guard:ehcont[-] |
Aktiverar EH-fortsättningsmetadata. |
/Gv |
Använder __vectorcall -anropskonventionen. (endast x86 och x64) |
/Gw[-] |
Möjliggör global dataoptimering för hela programmet. |
/GX[-] |
Föråldrad. Aktiverar synkron undantagshantering. Använd /EH i stället. |
/Gy[-] |
Aktiverar länkning på funktionsnivå. |
/Gz |
Använder __stdcall -anropskonventionen. (endast x86) |
/GZ |
Föråldrad. Aktiverar snabba kontroller. (Samma som /RTC1 ) |
/homeparams |
Tvingar parametrar som skickas i register att skrivas till deras platser i stacken vid funktionsinmatning. Det här kompilatoralternativet är bara för x64-kompilatorerna (intern och korskompilering). |
/hotpatch |
Skapar en snabbkorrigeringsbar avbildning. |
/jumptablerdata |
Placera switch case-instruktionen jump tables i avsnittet .rdata . |
/Qfast_transcendentals |
Genererar snabba transcendentaler. |
/QIfist |
Föråldrad. Undertrycker anropet av hjälpfunktionen _ftol när en konvertering från en flyttalstyp till en integrerad typ krävs. (endast x86) |
/Qimprecise_fwaits |
Tar bort fwait kommandon inuti try block. |
/QIntel-jcc-erratum |
Minimerar prestandapåverkan för Intel JCC erratum-mikrokodsuppdateringen. |
/Qpar |
Aktiverar automatisk parallellisering av loopar. |
/Qpar-report:n |
Aktiverar rapporteringsnivåer för automatisk parallellisering. |
/Qsafe_fp_loads |
Använder heltalsflyttningsinstruktioner för flyttalsvärden och inaktiverar vissa optimeringar av flyttal. |
/Qspectre[-] |
Aktivera åtgärder för CVE 2017-5753 för en klass av Spectre-attacker. |
/Qspectre-load |
Generera serialiseringsinstruktioner för varje inläsningsinstruktion. |
/Qspectre-load-cf |
Generera serialiseringsinstruktioner för varje kontrollflödesinstruktion som läser in minne. |
/Qvec-report:n |
Aktiverar rapporteringsnivåer för automatisk vektorisering. |
/RTC1 |
Aktivera snabba körningskontroller (motsvarar /RTCsu ). |
/RTCc |
Konvertera till mindre typkontroller vid körning. |
/RTCs |
Aktivera stack frame runtime-kontroller. |
/RTCu |
Aktiverar icke-initierade lokala användningskontroller. |
/vlen |
Anger vektorlängd. |
/volatile:iso |
Hämta/släppa semantik garanteras inte för flyktiga åtkomster. |
/volatile:ms |
Hämta/släppa semantik som garanteras vid flyktiga åtkomster. |
Utdatafiler
Alternativ | Avsikt |
---|---|
/doc |
Bearbetar dokumentationskommentar till en XML-fil. |
/FA |
Konfigurerar en sammansättningslistefil. |
/Fa |
Skapar en sammansättningslistefil. |
/Fd |
Byter namn på programdatabasfilen. |
/Fe |
Byter namn på den körbara filen. |
/Fi |
Anger namnet på den förbearbetade utdatafilen. |
/Fm |
Skapar en kartfil. |
/Fo |
Skapar en objektfil. |
/Fp |
Anger ett fördefinierat rubrikfilnamn. |
/FR , /Fr |
Namn som genererats .sbr webbläsarfiler.
/Fr är inaktuell. |
/Ft<dir> |
Platsen för huvudfilerna som genererats för #import . |
Preprocessor
Alternativ | Avsikt |
---|---|
/AI<dir> |
Anger en katalog som ska sökas efter för att matcha filreferenser som skickas till #using -direktivet. |
/C |
Bevarar kommentarer under förbearbetningen. |
/D<name>{=|#}<text> |
Definierar konstanter och makron. |
/E |
Kopierar förprocessorutdata till standardutdata. |
/EP |
Kopierar förprocessorutdata till standardutdata. |
/FI<file> |
Förbearbetar den angivna inkluderingsfilen. |
/FU<file> |
Tvingar fram användningen av ett filnamn, som om det hade överförts till #using -direktivet. |
/Fx |
Sammanfogar inmatad kod med källfilen. |
/I<dir> |
Söker i en katalog efter inkluderingsfiler. |
/P |
Skriver utdata från förprocessorn till en fil. |
/PD |
Skriv ut alla makrodefinitioner. |
/PH |
Generera #pragma file_hash vid förbearbetning. |
/U<name> |
Tar bort ett fördefinierat makro. |
/u |
Tar bort alla fördefinierade makron. |
/X |
Ignorerar standard-inkluderingskatalogen. |
Rubrikenheter/moduler
Alternativ | Avsikt |
---|---|
/exportHeader |
Skapa huvudenhetsfilerna (.ifc ) som anges av indataargumenten. |
/headerUnit |
Ange var huvudenhetsfilen (.ifc ) ska hittas för det angivna huvudet. |
/headerName |
Skapa en rubrikenhet från det angivna huvudet. |
/ifcOutput |
Ange utdatafilens namn eller katalog för byggda .ifc filer. |
/interface |
Behandla indatafilen som en modulgränssnittsenhet. |
/internalPartition |
Behandla indatafilen som en intern partitionsenhet. |
/reference |
Använd namngiven modul IFC. |
/scanDependencies |
Lista modul- och rubrikenhetsberoenden i C++ Standard JSON-formulär. |
/sourceDependencies |
Visa en lista över alla beroenden på källnivå. |
/sourceDependencies:directives |
Lista modul- och rubrikenhetsberoenden. |
/translateInclude |
Behandla #include som import . |
Språk
Alternativ | Avsikt |
---|---|
/await |
Aktivera tillägg för coroutines (återupptabara funktioner). |
/await:strict |
Aktivera standardstöd för C++20-coroutine med tidigare språkversioner. |
/constexpr:backtrace<N> |
Visa N constexpr utvärderingar i diagnostik (standard: 10). |
/constexpr:depth<N> |
Rekursionsdjupgräns för constexpr utvärdering (standard: 512). |
/constexpr:steps<N> |
Avsluta constexpr utvärdering efter N-steg (standard: 100000) |
/openmp |
Aktiverar #pragma omp i källkoden. |
/openmp:experimental |
Aktivera OpenMP 2.0-språktillägg plus välj OpenMP 3.0+ språktillägg. |
/openmp:llvm |
OpenMP-språktillägg med LLVM-körning. |
/permissive[-] |
Ange standardläge för överensstämmelse. |
/std:c++14 |
C++14 standard ISO/IEC 14882:2014 (standard). |
/std:c++17 |
C++17 standard ISO/IEC 14882:2017. |
/std:c++20 |
C++20 standard ISO/IEC 14882:2020. |
/std:c++latest |
De senaste funktionerna i C++-standardversionen. |
/std:c11 |
C11 standard ISO/IEC 9899:2011. |
/std:c17 |
C17 standard ISO/IEC 9899:2018. |
/std:clatest |
De senaste förhandsversionsfunktionerna i utkast C. |
/vd{0|1|2} |
Undertrycker eller aktiverar dolda vtordisp -klassmedlemmar. |
/vmb |
Använder bästa bas för pekare till medlemmar. |
/vmg |
Använder fullständig generalitet för pekare till medlemmar. |
/vmm |
Deklarerar flera arv. |
/vms |
Deklarerar enskilt arv. |
/vmv |
Deklarerar virtuellt arv. |
/Z7 |
Genererar C 7.0-kompatibel felsökningsinformation. |
/Za |
Inaktiverar vissa C89-språktillägg i C-kod. |
/Zc:__cplusplus[-] |
Aktivera __cplusplus makrot för att rapportera den standard som stöds (inaktiverad som standard). |
/Zc:__STDC__ |
Aktivera __STDC__ makrot för att rapportera att C-standarden stöds (inaktiverad som standard). |
/Zc:alignedNew[-] |
Aktivera överjusterad dynamisk allokering med C++17 (på som standard i C++17). |
/Zc:auto[-] |
Framtvinga den nya standard-C++-innebörden för auto (på som standard). |
/Zc:char8_t[-] |
Aktivera eller inaktivera C++20 inbyggt u8 literalstöd som const char8_t (inaktiverat som standard, förutom under /std:c++20 ). |
/Zc:enumTypes[-] |
Aktivera C++-standardregler för härledda enum bastyper (standardvärdet av b y är inte underförstått av /permissive- ). |
/Zc:externC[-] |
Framtvinga C++-standardregler för extern "C" funktioner (underförstått av /permissive- ). |
/Zc:externConstexpr[-] |
Aktivera extern länkning för constexpr variabler (inaktiverad som standard). |
/Zc:forScope[-] |
Framtvinga Standard C++ for omfångsregler (på som standard). |
/Zc:gotoScope |
Framtvinga Standard C++ goto regler kring lokal variabelinitiering (underförstått av /permissive- ). |
/Zc:hiddenFriend[-] |
Framtvinga standardregler för C++-dolda vänner (underförstått av /permissive- ) |
/Zc:implicitNoexcept[-] |
Aktivera implicit noexcept på nödvändiga funktioner (på som standard). |
/Zc:inline[-] |
Ta bort orefererade funktioner eller data om de är COMDAT eller har endast intern länkning (inaktiverad som standard). |
/Zc:lambda[-] |
Aktivera ny lambda-processor för syntaktiska kontroller i överensstämmelseläge i generiska lambdas. |
/Zc:noexceptTypes[-] |
Framtvinga C++17-noexcept regler (på som standard i C++17 eller senare). |
/Zc:nrvo[-] |
Aktivera valfri kopiering och flytta elisions (aktivera som standard under /O2 , /permissive- eller /std:c++20 eller senare). |
/Zc:preprocessor[-] |
Använd den nya förprocessorn (inaktiverad som standard, förutom i C11/C17). |
/Zc:referenceBinding[-] |
En TILLFÄLLIG UDT binder inte till en referens för icke-const lvalue (inaktiverad som standard). |
/Zc:rvalueCast[-] |
Framtvinga explicita standardregler för C++-explicit typkonvertering (inaktiverad som standard). |
/Zc:sizedDealloc[-] |
Aktivera C++14-funktioner för global storleksfördelning (på som standard). |
/Zc:strictStrings[-] |
Inaktivera strängliteral till char* eller wchar_t* konvertering (inaktiverad som standard). |
/Zc:templateScope[-] |
Framtvinga skuggningsregler för Standard C++-mallparametern (inaktiverad som standard). |
/Zc:ternary[-] |
Framtvinga villkorsstyrda operatorregler för operandtyper (inaktiverad som standard). |
/Zc:threadSafeInit[-] |
Aktivera trådsäker lokal statisk initiering (på som standard). |
/Zc:throwingNew[-] |
Anta att operator new utlöser fel (av som standard). |
/Zc:tlsGuards[-] |
Generera körningskontroller för TLS-variabelinitiering (på som standard). |
/Zc:trigraphs |
Aktivera trigraphs (föråldrad, inaktiverad som standard). |
/Zc:twoPhase[-] |
Använd icke-konforma mallparsningsbeteende (som standard). |
/Zc:wchar_t[-] |
wchar_t är en intern typ, inte en typedef (på som standard). |
/Zc:zeroSizeArrayNew[-] |
Anropa medlem new /delete för 0-storleksmatriser med objekt (på som standard). |
/Ze |
Föråldrad. Aktiverar C89-språktillägg. |
/Zf |
Förbättrar PDB-generationstiden i parallella versioner. |
/ZH :[MD5|SHA1|SHA_256] |
Anger MD5, SHA-1 eller SHA-256 för kontrollsummor i felsökningsinformation. |
/ZI |
Innehåller felsökningsinformation i en programdatabas som är kompatibel med Redigera och Fortsätt. (endast x86) |
/Zi |
Genererar fullständig felsökningsinformation. |
/Zl |
Tar bort standardbibliotekets namn från filen .obj . |
/Zo[-] |
Generera mer detaljerad felsökningsinformation för optimerad kod. |
/Zp[n] |
Paket strukturerar medlemmar. |
/Zs |
Kontrollerar endast syntax. |
/ZW |
Skapar en utdatafil som ska köras på Windows Runtime. |
Länka
Alternativ | Avsikt |
---|---|
/F |
Anger stackstorlek. |
/LD |
Skapar ett dynamiskt länkbibliotek. |
/LDd |
Skapar ett felsökningsbibliotek för dynamisk länk. |
/link |
Skickar det angivna alternativet till LÄNK. |
/LN |
Skapar en MSIL-.netmodule . |
/MD |
Kompilerar för att skapa en flertrådad DLL med hjälp av MSVCRT.lib. |
/MDd |
Kompilerar för att skapa en felsökning av flertrådad DLL med hjälp av MSVCRTD.lib. |
/MT |
Kompilerar för att skapa en körbar fil med flera läsbara filer med hjälp av LIBCMT.lib. |
/MTd |
Kompilerar för att skapa en körbar fil med flertrådsfelsökning med hjälp av LIBCMTD.lib. |
Diverse
Alternativ | Avsikt |
---|---|
/? |
Visar en lista över kompilatoralternativen. |
@ |
Anger en svarsfil. |
/analyze |
Aktiverar kodanalys. |
/bigobj |
Ökar antalet adresserbara avsnitt i en .obj fil. |
/c |
Kompileras utan länkning. |
/cgthreads |
Anger antalet cl.exe trådar som ska användas för optimering och kodgenerering. |
/errorReport |
Föråldrad. Felrapportering i Windows (WER) inställningar styr felrapportering. |
/execution-charset |
Ange körningsteckenuppsättning. |
/fastfail |
Aktivera snabbt felläge. |
/FC |
Visar den fullständiga sökvägen för källkodsfiler som skickas till cl.exe i diagnostiktext. |
/FS |
Tvingar skrivningar till PDB-filen som ska serialiseras via MSPDBSRV.EXE. |
/H |
Föråldrad. Begränsar längden på externa (offentliga) namn. |
/HELP |
Visar en lista över kompilatoralternativen. |
/J |
Ändrar standardtypen char . |
/JMC |
Stöder intern felsökning av C++ Just My Code. |
/kernel |
Kompilatorn och länkaren skapar en binärfil som kan köras i Windows-kerneln. |
/MP |
Skapar flera källfiler samtidigt. |
/nologo |
Undertrycker visning av inloggningsbanderoll. |
/presetPadding |
Noll initiera utfyllnad för stackbaserade klasstyper. |
/showIncludes |
Visar en lista över alla inkluderingsfiler under kompilering. |
/source-charset |
Ange källteckenuppsättning. |
/Tc |
Anger en C-källfil. |
/TC |
Anger att alla källfiler är C. |
/Tp |
Anger en C++-källfil. |
/TP |
Anger att alla källfiler är C++. |
/utf-8 |
Ange käll- och körningsteckenuppsättningar till UTF-8. |
/V |
Föråldrad. Anger versionssträngen. |
/validate-charset |
Verifiera UTF-8-filer för endast kompatibla tecken. |
/volatileMetadata |
Generera metadata för flyktiga minnesåtkomster. |
/Yc |
Skapa .PCH fil. |
/Yd |
Föråldrad. Placerar fullständig felsökningsinformation i alla objektfiler. Använd /Zi i stället. |
/Yl |
Matar in en PCH-referens när du skapar ett felsökningsbibliotek. |
/Yu |
Använder en fördefinierad rubrikfil under bygget. |
/Y- |
Ignorerar alla andra kompilatoralternativ för förkompilerade huvuden i den aktuella versionen. |
/Zm |
Anger den förkompilerade minnesallokeringsgränsen för huvud. |
Diagnostik
Alternativ | Avsikt |
---|---|
/diagnostics:caret[-] |
Diagnostikformat: skriver ut kolumnen och den angivna källraden. |
/diagnostics:classic |
Använd äldre diagnostikformat. |
/diagnostics |
Diagnostikformat: skriver ut kolumninformation. |
/external:anglebrackets |
Behandla alla rubriker som ingår via <> som externa. |
/external:env:<var> |
Ange en miljövariabel med platser för externa rubriker. |
/external:I <path> |
Ange platsen för externa rubriker. |
/external:templates[-] |
Utvärdera varningsnivån i mallens instansieringskedja. |
/external:W<n> |
Ange varningsnivå för externa rubriker. |
/options:strict |
Okända kompilatoralternativ är fel. |
/sdl |
Aktivera fler säkerhetsfunktioner och varningar. |
/w |
Inaktivera alla varningar. |
/W0 , /W1 , /W2 , /W3 , /W4 |
Ange varningsnivå för utdata. |
/w1<n> , /w2<n> , /w3<n> , /w4<n> |
Ange varningsnivå för den angivna varningen. |
/Wall |
Aktivera alla varningar, inklusive varningar som är inaktiverade som standard. |
/wd<n> |
Inaktivera den angivna varningen. |
/we<n> |
Behandla den angivna varningen som ett fel. |
/WL |
Aktivera enradsdiagnostik för fel- och varningsmeddelanden vid kompilering av C++-källkod från kommandoraden. |
/wo<n> |
Visa den angivna varningen bara en gång. |
/Wv:xx[.yy[.zzzzz]] |
Inaktivera varningar som introducerats efter den angivna versionen av kompilatorn. |
/WX |
Behandla varningar som fel. |
Experimentella alternativ
Experimentella alternativ kan endast stödjas av vissa versioner av kompilatorn. De kan också bete sig annorlunda i olika kompilatorversioner. Ofta finns den bästa eller enda dokumentationen för experimentella alternativ i Microsoft C++ Team Blog.
Alternativ | Avsikt |
---|---|
/experimental:log |
Aktiverar experimentella strukturerade SARIF-utdata. |
/experimental:module |
Aktiverar stöd för experimentella moduler. |
Inaktuella och borttagna kompilatoralternativ
Alternativ | Avsikt |
---|---|
/clr:noAssembly |
Föråldrad. Använd /LN (Skapa MSIL-modul) i stället. |
/errorReport |
Föråldrad. Felrapportering styrs av WINDOWS-felrapportering (WER) inställningar. |
/experimental:preprocessor |
Föråldrad. Möjliggör experimentellt stöd för förprocessorer. Använd /Zc:preprocessor |
/Fr |
Föråldrad. Skapar en bläddra informationsfil utan lokala variabler. |
/Ge |
Föråldrad. Aktiverar stackavsökningar. På som standard. |
/Gm |
Föråldrad. Möjliggör minimal återskapande. |
/GX |
Föråldrad. Aktiverar synkron undantagshantering. Använd /EH i stället. |
/GZ |
Föråldrad. Aktiverar snabba kontroller. Använd /RTC1 i stället. |
/H |
Föråldrad. Begränsar längden på externa (offentliga) namn. |
/Og |
Föråldrad. Använder globala optimeringar. |
/QIfist |
Föråldrad. En gång användes för att ange hur du konverterar från en flyttalstyp till en integrerad typ. |
/V |
Föråldrad. Anger .obj filversionssträngen. |
/Wp64 |
Föråldrad. Identifierar 64-bitars portabilitetsproblem. |
/Yd |
Föråldrad. Placerar fullständig felsökningsinformation i alla objektfiler. Använd /Zi i stället. |
/Zc:forScope- |
Föråldrad. Inaktiverar överensstämmelse i för loopomfång. |
/Ze |
Föråldrad. Aktiverar språktillägg. |
/Zg |
Togs bort i Visual Studio 2015. Genererar funktionsprototyper. |
17.10 Det här alternativet är tillgängligt från och med Visual Studio 2022 version 17.10.
Se även
C/C++-byggreferens
MSVC-kompilatoralternativ
kommandoradssyntax för MSVC-kompilatorn