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ę _pexit hook . |
/Gh |
Wywołuje funkcję _penter hook . |
/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. |
/vlen |
Określa długość wektora. |
/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