Opcje kompilatora w porządku alfabetycznym

Ta tabela zawiera alfabetyczną listę opcji kompilatora. Aby uzyskać listę opcji kompilatora według kategorii, zobacz artykuł Opcje kompilatora wymienione według kategorii .

Opcje kompilatora

Opcja Przeznaczenie
@ Określa plik odpowiedzi.
/? Wyświetla listę opcji kompilatora.
/AI<dir> Określa katalog do wyszukiwania w celu rozpoznania odwołań do plików przekazanych do #using dyrektywy.
/analyze Umożliwia analizę kodu.
/arch:<IA32|SSE|SSE2|AVX|AVX2|AVX512> Minimalne wymagania dotyczące architektury procesora CPU. IA32, SSE i SSE2 są tylko x86.
/arm64EC Generowanie kodu zgodnego z architekturą arm64EC ABI.
/await Włącz rozszerzenia coroutines (funkcje możliwe do wznowienia).
/await:strict Włącz standardową obsługę współistnienia języka C++20 z wcześniejszymi wersjami języka.
/bigobj Zwiększa liczbę adresowalnych sekcji w pliku .obj.
/C Zachowuje komentarze podczas przetwarzania wstępnego.
/c Kompiluje się bez łączenia.
/cgthreads Określa liczbę wątków cl.exe do użycia na potrzeby optymalizacji i generowania kodu.
/clr Tworzy plik wyjściowy do uruchomienia w środowisku uruchomieniowym języka wspólnego.
/clr:implicitKeepAlive- Wyłącz niejawną emisję .System::GC::KeepAlive(this)
/clr:initialAppDomain Włącz początkowe zachowanie AppDomain programu Visual C++ 2002.
/clr:netcore Tworzenie zestawów przeznaczonych dla środowiska uruchomieniowego platformy .NET Core.
/clr:noAssembly Nie należy tworzyć zestawu.
/clr:nostdimport Nie importuj żadnych wymaganych zestawów niejawnie.
/clr:nostdlib Ignoruj katalog systemowy .NET Framework podczas wyszukiwania zestawów.
/clr:pure Utwórz plik wyjściowy tylko w formacie IL (bez natywnego kodu wykonywalnego).
/clr:safe Utwórz plik wyjściowy tylko do zweryfikowania il.
/constexpr:backtrace<N> Pokaż N constexpr ocen w diagnostyce (wartość domyślna: 10).
/constexpr:depth<N> Limit głębokości rekursji dla constexpr oceny (wartość domyślna: 512).
/constexpr:steps<N> Zakończ constexpr ocenę po n krokach (wartość domyślna: 100000)
/D<name>{=|#}<text> Definiuje stałe i makra.
/diagnostics Format diagnostyki: wyświetla informacje o kolumnie.
/diagnostics:caret[-] Format diagnostyki: drukuje kolumnę i wskazaną linię źródła.
/diagnostics:classic Użyj starszego formatu diagnostyki.
/doc Przetwarza komentarze dokumentacji do pliku XML.
/E Kopiuje dane wyjściowe preprocesora do standardowych danych wyjściowych.
/EHa Włącz obsługę wyjątków języka C++ (z wyjątkami SEH).
/EHc Właściwość extern "C" domyślnie przyjmuje wartość nothrow.
/EHr Zawsze generuj noexcept testy zakończenia wykonywania.
/EHs Włącz obsługę wyjątków języka C++ (bez wyjątków SEH).
/EP Kopiuje dane wyjściowe preprocesora do standardowych danych wyjściowych.
/errorReport Przestarzałe. Raportowanie błędów systemu Windows (WER) ustawienia kontrolują raportowanie błędów.
/execution-charset Ustaw zestaw znaków wykonywania.
/experimental:log Umożliwia eksperymentalne dane wyjściowe SARIF ze strukturą.
/experimental:module Umożliwia obsługę modułów eksperymentalnych.
/exportHeader Utwórz pliki jednostek nagłówka (.ifc) określone przez argumenty wejściowe.
/external:anglebrackets Traktuj wszystkie nagłówki dołączone <> jako zewnętrzne.
/external:env:<var> Określ zmienną środowiskową z lokalizacjami nagłówków zewnętrznych.
/external:I <path> Określ lokalizację nagłówków zewnętrznych.
/external:templates[-] Ocena poziomu ostrzeżenia między łańcuchem tworzenia wystąpień szablonu.
/external:W<n> Ustaw poziom ostrzeżenia dla nagłówków zewnętrznych.
/F Ustawia rozmiar stosu.
/FA Konfiguruje plik listy zestawów.
/Fa Tworzy plik listy zestawów.
/fastfail Włącz tryb szybkiej awarii.
/favor:<blend|AMD64|INTEL64|ATOM> Tworzy kod zoptymalizowany pod kątem określonej architektury lub dla wielu architektur.
/FC Wyświetla pełną ścieżkę plików kodu źródłowego przekazanych do pliku cl.exe w tekście diagnostycznym.
/Fd Zmienia nazwę pliku bazy danych programu.
/Fe Zmienia nazwę pliku wykonywalnego.
/FI<file> Wstępnie przetwarza określony plik dołączania.
/Fi Określa wstępnie przetworzoną nazwę pliku wyjściowego.
/Fm Tworzy plik mapowania.
/Fo Tworzy plik obiektu.
/Fp Określa wstępnie skompilowaną nazwę pliku nagłówka.
/fp:contract Podczas generowania kodu rozważ skurcze zmiennoprzecinkowe.
/fp:except[-] Podczas generowania kodu rozważ wyjątki zmiennoprzecinkowe.
/fp:fast "szybki" model zmiennoprzecinkowa; wyniki są mniej przewidywalne.
/fp:precise "precyzyjny" model zmiennoprzecinkowa; wyniki są przewidywalne.
/fp:strict Model zmiennoprzecinkowa "strict" (implikuje /fp:except).
/fpcvt:BC Zgodne z poprzednimi zmiennoprzecinkami do niepodpisanych konwersji liczb całkowitych.
/fpcvt:IA Natywny zmiennoprzecinek firmy Intel do niepodpisanego zachowania konwersji liczb całkowitych.
/FR, /Fr Nazwa wygenerowanych .sbr plików przeglądarki. /Fr jest przestarzały.
/FS Wymusza zapisanie do pliku PDB w celu serializacji za pośrednictwem PLIKU MSPDBSRV.EXE.
/fsanitize Umożliwia kompilację instrumentacji sanitizera, takiej jak AddressSanitizer.
/fsanitize-coverage Umożliwia kompilację instrumentacji pokrycia kodu dla bibliotek, takich jak LibFuzzer.
/Ft<dir> Lokalizacja plików nagłówków wygenerowanych dla elementu #import.
/FU<file> Wymusza użycie nazwy pliku, tak jakby została przekazana do #using dyrektywy.
/Fx Scala wstrzykiwany kod z plikiem źródłowym.
/GA Optymalizuje pod kątem aplikacji systemu Windows.
/Gd __cdecl Używa konwencji wywoływania. (tylko x86)
/Ge Przestarzałe. Aktywuje sondy stosu.
/GF Włącza buforowanie ciągów.
/GH Wywołuje funkcję _pexithook .
/Gh Wywołuje funkcję _penterhook .
/GL[-] Umożliwia optymalizację całego programu.
/Gm[-] Przestarzałe. Umożliwia minimalną ponowną kompilację.
/GR[-] Włącza informacje o typie czasu wykonywania (RTTI).
/Gr __fastcall Używa konwencji wywoływania. (tylko x86)
/GS[-] Sprawdza zabezpieczenia buforu.
/Gs[n] Steruje sondami stosu.
/GT Obsługuje bezpieczeństwo światłowodów dla danych przydzielonych przy użyciu magazynu statycznego wątku lokalnego.
/Gu[-] Upewnij się, że różne funkcje mają różne adresy.
/guard:cf[-] Dodaje kontrole zabezpieczeń ochrony przepływu sterowania.
/guard:ehcont[-] Włącza metadane kontynuacji EH.
/Gv __vectorcall Używa konwencji wywoływania. (tylko x86 i x64)
/Gw[-] Umożliwia optymalizację danych globalnych w całym programie.
/GX[-] Przestarzałe. Umożliwia synchroniczną obsługę wyjątków. Użycie w zamian parametru /EH.
/Gy[-] Włącza łączenie na poziomie funkcji.
/GZ Przestarzałe. Umożliwia szybkie sprawdzanie. (Takie same jak /RTC1)
/Gz __stdcall Używa konwencji wywoływania. (tylko x86)
/H Przestarzałe. Ogranicza długość nazw zewnętrznych (publicznych).
/headerName Skompiluj jednostkę nagłówka z określonego nagłówka.
/headerUnit Określ, gdzie znaleźć plik jednostki nagłówka (.ifc) dla określonego nagłówka.
/HELP Wyświetla listę opcji kompilatora.
/homeparams Wymusza przekazywanie parametrów w rejestrach, które mają być zapisywane w ich lokalizacjach na stosie po wpisie funkcji. Ta opcja kompilatora dotyczy tylko kompilatorów x64 (natywna i krzyżowa kompilacja).
/hotpatch Tworzy obraz z możliwością poprawiania na gorąco.
/I<dir> Wyszukuje katalog zawierający pliki.
/ifcOutput Określ nazwę pliku wyjściowego lub katalog dla skompilowanych .ifc plików.
/interface Traktuj plik wejściowy jako jednostkę interfejsu modułu.
/internalPartition Traktuj plik wejściowy jako jednostkę partycji wewnętrznej.
/J Zmienia typ domyślny char .
/jumptablerdata Umieść tabele przeskoku instrukcji .rdata switch case w sekcji .
/JMC Obsługuje natywne debugowanie kodu Tylko mój kod w języku C++.
/kernel Kompilator i konsolidator tworzą plik binarny, który można wykonać w jądrze systemu Windows.
/LD Tworzy bibliotekę łącza dynamicznego.
/LDd Tworzy bibliotekę linku dynamicznego debugowania.
/link Przekazuje określoną opcję do linku.
/LN Tworzy MSIL .netmodule.
/MD Kompiluje w celu utworzenia wielowątkowej biblioteki DLL przy użyciu biblioteki MSVCRT.lib.
/MDd Kompiluje w celu utworzenia biblioteki DLL wielowątkowej debugowania przy użyciu biblioteki MSVCRTD.lib.
/MP Kompiluje jednocześnie wiele plików źródłowych.
/MT Kompiluje w celu utworzenia wielowątkowego pliku wykonywalnego przy użyciu biblioteki LIBCMT.lib.
/MTd Kompiluje w celu utworzenia pliku wykonywalnego wielowątkowego debugowania przy użyciu biblioteki LIBCMTD.lib.
/nologo Pomija wyświetlanie baneru logowania.
/O1 Tworzy mały kod.
/O2 Tworzy szybki kod.
/Ob<n> Kontrolki rozszerzania wbudowanego.
/Od Wyłącza optymalizację.
/Og Przestarzałe. Używa optymalizacji globalnych.
/Oi[-] Generuje funkcje wewnętrzne.
/openmp #pragma omp Włącza w kodzie źródłowym.
/openmp:experimental Włącz rozszerzenia języka OpenMP 2.0 oraz wybierz pozycję Rozszerzenia języka OpenMP 3.0+ .
/openmp:llvm Rozszerzenia języka OpenMP przy użyciu środowiska uruchomieniowego LLVM.
/options:strict Nierozpoznane opcje kompilatora to błędy.
/Os Faworyzuje mały kod.
/Ot Faworyzuje szybki kod.
/Ox Podzbiór /O2, który nie zawiera /GF lub /Gy.
/Oy Pomija wskaźnik ramki. (tylko x86)
/P Zapisuje dane wyjściowe preprocesora do pliku.
/PD Wydrukuj wszystkie definicje makr.
/permissive[-] Ustaw tryb zgodności ze standardami.
/PH Generowanie #pragma file_hash podczas przetwarzania wstępnego.
/presetPadding Zero inicjuje dopełnianie dla typów klas opartych na stosie.
/Qfast_transcendentals Generuje szybkie transcends.
/QIfist Przestarzałe. Pomija wywołanie funkcji _ftol pomocniczej, gdy wymagana jest konwersja typu zmiennoprzecinkowego na typ całkowity. (tylko x86)
/Qimprecise_fwaits fwait Usuwa polecenia wewnątrz try bloków.
/QIntel-jcc-erratum Zmniejsza wpływ wydajności aktualizacji mikrokodu intel JCC erratum.
/Qpar-report:<n> Umożliwia raportowanie poziomów automatycznego przetwarzania równoległego.
/Qpar Umożliwia automatyczną równoległość pętli.
/Qsafe_fp_loads Używa instrukcji przenoszenia liczb całkowitych dla wartości zmiennoprzecinkowych i wyłącza pewne optymalizacje obciążenia zmiennoprzecinkowego.
/Qspectre[-] Włącz środki zaradcze dla cve 2017-5753 dla klasy ataków Spectre.
/Qspectre-load Generowanie instrukcji serializacji dla każdej instrukcji ładowania.
/Qspectre-load-cf Generowanie instrukcji serializacji dla każdej instrukcji przepływu sterowania, która ładuje pamięć.
/Qvec-report:<n> Umożliwia raportowanie poziomów automatycznej wektoryzacji.
/reference Użyj nazwanego modułu IFC.
/RTC1 Włącz szybkie kontrole środowiska uruchomieniowego (równoważne )./RTCsu
/RTCc Przekonwertuj na kontrole mniejszego typu w czasie wykonywania.
/RTCs Włącz sprawdzanie środowiska uruchomieniowego ramki stosu.
/RTCu Włącza niezainicjowane lokalne kontrole użycia.
/scanDependencies Wyświetlanie listy zależności modułu w formularzu JSON języka C++ w warstwie Standardowa.
/sdl Włącz więcej funkcji zabezpieczeń i ostrzeżeń.
/showIncludes Wyświetla listę wszystkich plików dołączanych podczas kompilacji.
/source-charset Ustaw źródłowy zestaw znaków.
/sourceDependencies Wyświetl listę wszystkich zależności na poziomie źródła.
/sourceDependencies:directives Wyświetlanie listy zależności modułu i jednostki nagłówka.
/std:c++14 C++14 standard ISO/IEC 14882:2014 (ustawienie domyślne).
/std:c++17 C++17 standard ISO/IEC 14882:2017.
/std:c++20 C++20 standard ISO/IEC 14882:2020.
/std:c++latest Najnowsze wersje robocze standardowych funkcji języka C++ w wersji zapoznawczej.
/std:c11 C11 standard ISO/IEC 9899:2011.
/std:c17 C17 standard ISO/IEC 9899:2018.
/std:clatest Najnowsze wersje robocze funkcji wersji zapoznawczej języka C w wersji zapoznawczej.
/TC Określa, że wszystkie pliki źródłowe to C.
/Tc Określa plik źródłowy języka C.
/TP Określa, że wszystkie pliki źródłowe to C++.
/Tp Określa plik źródłowy C++.
/translateInclude Traktuj #include jako import.
/U<name> Usuwa wstępnie zdefiniowane makro.
/u Usuwa wszystkie wstępnie zdefiniowane makra.
/utf-8 Ustaw zestawy znaków źródłowych i wykonawczych na UTF-8.
/V Przestarzałe. Ustawia ciąg wersji.
/validate-charset Zweryfikuj pliki UTF-8 tylko pod kątem zgodnych znaków.
/vd{0|1|2} Pomija lub włącza ukryte vtordisp składowe klasy.
/vmb Używa najlepszej bazy dla wskaźników do elementów członkowskich.
/vmg Używa pełnej ogólnejlności wskaźników do elementów członkowskich.
/vmm Deklaruje wiele dziedziczenia.
/vms Deklaruje pojedyncze dziedziczenie.
/vmv Deklaruje dziedziczenie wirtualne.
/volatile:iso Semantyka uzyskiwania/wydawania nie gwarantuje dostępu nietrwałego.
/volatile:ms Semantyka uzyskiwania/wydawania gwarantowana dla nietrwałych dostępu.
/volatileMetadata Generowanie metadanych dotyczących dostępu do nietrwałej pamięci.
/w Wyłącz wszystkie ostrzeżenia.
/W0, , /W1, /W2, , /W3/W4 Ustaw poziom ostrzeżenia wyjściowego.
/w1<n>, , /w2<n>, , /w3<n>/w4<n> Ustaw poziom ostrzeżenia dla określonego ostrzeżenia.
/Wall Włącz wszystkie ostrzeżenia, w tym ostrzeżenia, które są domyślnie wyłączone.
/wd<n> Wyłącz określone ostrzeżenie.
/we<n> Traktuj określone ostrzeżenie jako błąd.
/WL Włącz diagnostykę jednowierszową dla komunikatów o błędach i ostrzeżeniach podczas kompilowania kodu źródłowego języka C++ z wiersza polecenia.
/wo<n> Wyświetl określone ostrzeżenie tylko raz.
/Wv:xx[.yy[.zzzzz]] Wyłącz ostrzeżenia wprowadzone po określonej wersji kompilatora.
/WX Traktuj ostrzeżenia jako błędy.
/X Ignoruje standardowy katalog include.
/Y- Ignoruje wszystkie inne opcje kompilatora prekompilowanego nagłówka w bieżącej kompilacji.
/Yc Utwórz .PCH plik.
/Yd Przestarzałe. Umieszcza pełne informacje debugowania we wszystkich plikach obiektów. Użycie w zamian parametru /Zi.
/Yl Wprowadza odwołanie PCH podczas tworzenia biblioteki debugowania.
/Yu Używa wstępnie skompilowanego pliku nagłówka podczas kompilacji.
/Z7 Generuje informacje debugowania zgodne z językiem C 7.0.
/Za Wyłącza niektóre rozszerzenia języka C89 w kodzie języka C.
/Zc:__cplusplus[-] Włącz makro, __cplusplus aby zgłosić obsługiwany standard (domyślnie wyłączony).
/Zc:__STDC__ Włącz makro, __STDC__ aby zgłosić, że standard C jest obsługiwany (domyślnie wyłączony).
/Zc:alignedNew[-] Włącz alokację dynamiczną wyrównaną w języku C++17 (domyślnie włączoną w języku C++17).
/Zc:auto[-] Wymuś nowe znaczenie auto języka C++ w warstwie Standardowa (domyślnie włączone).
/Zc:char8_t[-] Włączanie lub wyłączanie natywnej u8 obsługi literałów języka C++20 jako const char8_t (domyślnie wyłączone, z wyjątkiem opcji /std:c++20).
/Zc:enumTypes[-] Włącz standardowe reguły języka C++ dla enum odliczeń typów (domyślnie wyłączone).
/Zc:externC[-] Wymuszanie standardowych reguł języka C++ dla extern "C" funkcji (implikowane przez /permissive-).
/Zc:externConstexpr[-] Włącz połączenie zewnętrzne dla constexpr zmiennych (domyślnie wyłączone).
/Zc:forScope[-] Wymuszanie standardowych reguł określania zakresu języka C++ for (domyślnie włączone).
/Zc:gotoScope Wymuszanie standardowych reguł języka C++ goto wokół inicjowania zmiennej lokalnej (implikowane przez /permissive-).
/Zc:hiddenFriend[-] Wymuszanie standardowych reguł ukrytego przyjaciela języka C++ (implikowane przez /permissive-)
/Zc:implicitNoexcept[-] Włącz niejawne noexcept wymagane funkcje (domyślnie włączone).
/Zc:inline[-] Usuń niereferencyjne funkcje lub dane, jeśli są one comDAT lub mają tylko połączenie wewnętrzne (domyślnie wyłączone).
/Zc:lambda[-] Włącz nowy procesor lambda na potrzeby sprawdzania składni trybu zgodności w ogólnych wyrażeniach lambda.
/Zc:noexceptTypes[-] Wymuszanie reguł języka C++17 noexcept (domyślnie w języku C++17 lub nowszym).
/Zc:nrvo[-] Włącz opcjonalne kopiowanie i przenoszenie elizji (domyślnie w obszarze /O2, /permissive-lub /std:c++20 nowszym).
/Zc:preprocessor[-] Użyj nowego zgodnego preprocesora (domyślnie wyłączonego, z wyjątkiem C11/C17).
/Zc:referenceBinding[-] Tymczasowe ustawienie UDT nie będzie wiązać się z odwołaniem innej niż const lvalue (domyślnie wyłączona).
/Zc:rvalueCast[-] Wymuszanie standardowych reguł konwersji typów jawnych języka C++ (domyślnie wyłączone).
/Zc:sizedDealloc[-] Włącz funkcje alokacji rozmiaru globalnego języka C++14 (domyślnie włączone).
/Zc:strictStrings[-] Wyłącz literał ciągu do char* lub wchar_t* konwersję (domyślnie wyłączone).
/Zc:templateScope[-] Wymuszanie reguł cieniowania parametrów szablonu standardowego języka C++ (domyślnie wyłączone).
/Zc:ternary[-] Wymuszanie reguł operatorów warunkowych dla typów operandów (domyślnie wyłączone).
/Zc:threadSafeInit[-] Włącz lokalne inicjowanie statyczne bezpieczne wątkowo (domyślnie włączone).
/Zc:throwingNew[-] Przyjmij, że operator new zgłasza błędy (domyślnie wyłączone).
/Zc:tlsGuards[-] Wygeneruj testy środowiska uruchomieniowego pod kątem inicjowania zmiennej TLS (domyślnie włączone).
/Zc:trigraphs Włącz trigrafy (przestarzałe, wyłączone domyślnie).
/Zc:twoPhase[-] Użyj zachowania analizy szablonu niekonformowania (domyślnie zgodnego).
/Zc:wchar_t[-] wchar_t jest typem natywnym, a nie typedef (domyślnie).
/Zc:zeroSizeArrayNew[-] Wywołaj element członkowski new/delete dla tablic o zerowym rozmiarze obiektów (domyślnie włączone).
/Ze Przestarzałe. Włącza rozszerzenia języka C89.
/Zf Poprawia czas generowania pliku PDB w kompilacjach równoległych.
/ZH:[MD5|SHA1|SHA_256] Określa MD5, SHA-1 lub SHA-256 dla sum kontrolnych w informacjach debugowania.
/ZI Zawiera informacje debugowania w bazie danych programu zgodnej z funkcją Edytuj i kontynuuj. (tylko x86)
/Zi Generuje pełne informacje o debugowaniu.
/Zl Usuwa domyślną nazwę biblioteki z .obj pliku.
/Zm Określa limit alokacji pamięci prekompilowanego nagłówka.
/Zo[-] Generowanie bogatszych informacji o debugowaniu dla zoptymalizowanego kodu.
/Zp[n] Elementy członkowskie struktury pakietów.
/Zs Sprawdza tylko składnię.
/ZW Tworzy plik wyjściowy do uruchomienia na środowisko wykonawcze systemu Windows.

Zobacz też

Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC