Udostępnij za pośrednictwem


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 Purpose
@ 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 Minimalne wymagania dotyczące architektury procesora CPU.
/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ę sekcji adresowych 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 cl.exe w tekście diagnostycznym.
/Fd Zmienia nazwę pliku bazy danych programu.
/Fe Zmienia nazwę pliku wykonywalnego.
/feature Włączanie funkcji architektury.17.10
/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 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.

17.10 Ta opcja jest dostępna od wersji 17.10 programu Visual Studio 2022.

Zobacz też

Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC