Udostępnij za pośrednictwem


Strony właściwości języka C/C++

Następujące strony właściwości znajdują się w obszarze Właściwości projektu>Właściwości>>konfiguracji C/C++:

Właściwości ogólne języka C/C++

Dodatkowe katalogi dołączania

Określa co najmniej jeden katalog do dodania do ścieżki dołączania. Rozdziel katalogi średnikami (';'), jeśli istnieje więcej niż jeden. Ustawia opcję kompilatora /I (Dodatkowe katalogi dołączane).

Dodatkowe katalogi #using

Określa co najmniej jeden katalog do wyszukiwania w celu rozpoznawania #using nazw przekazanych do dyrektywy. Rozdziel katalogi średnikami (';'), jeśli istnieje więcej niż jeden. Ustawia opcję kompilatora /AI .

Dodatkowe katalogi BMI

Określa co najmniej jeden katalog do wyszukiwania w celu rozpoznawania nazw przekazanych do import dyrektywy. Rozdziel katalogi średnikami (';'), jeśli istnieje więcej niż jeden. Ustawia opcję kompilatora /ifcSearchDir[path] .

Dodatkowe zależności modułu

Określa co najmniej jeden moduł używany do rozpoznawania nazw przekazywanych do import dyrektywy. Rozdziel katalogi średnikami (';'), jeśli istnieje więcej niż jeden. Ustawia opcję kompilatora /reference .

Dodatkowe zależności jednostek nagłówka

Określa co najmniej jedną jednostkę nagłówka, która ma być używana do rozpoznawania nazw przekazywanych do dyrektywy nagłówka import . Rozdziel katalogi średnikami (';'), jeśli istnieje więcej niż jeden. Ustawia opcję kompilatora /headerUnit .

Skanuj źródła pod kątem zależności modułu

Po ustawieniu wartości Tak kompilator skanuje wszystkie źródła języka C++, a nie tylko źródła interfejsu modułu i jednostki nagłówka, dla zależności jednostek modułu i nagłówka. System kompilacji kompiluje graf pełnych zależności, co gwarantuje, że wszystkie zaimportowane moduły i jednostki nagłówka zostaną skompilowane przed skompilowaniem plików, które są od nich zależne. W połączeniu z funkcją Translate Includes to Import wszystkie pliki nagłówkowe określone w pliku w header-units.json tym samym katalogu co plik nagłówkowy są kompilowane w jednostce nagłówka.

Pliki, które mają rozszerzenie .ixx, i pliki, które mają ich właściwości>Plik C/C++Compile As ustawioną na wartość Kompiluj jako jednostkę nagłówka języka C++> (/exportHeader), są zawsze skanowane.

Tłumaczenie dołączania na importy

W przypadku ustawienia wartości Tak kompilator traktuje dyrektywę #include jako dyrektywę import , jeśli spełnione są pewne warunki: plik nagłówka jest określony w pliku w header-units.json tym samym katalogu, a skompilowana jednostka nagłówka ( .ifc plik) jest dostępna dla pliku nagłówka. W przeciwnym razie plik nagłówka jest traktowany jako normalny #include. Plik header-units.json jest używany do kompilowania jednostek nagłówka dla każdego #include bez duplikowania symboli. W połączeniu ze źródłami skanowania dla zależności modułu kompilator automatycznie odnajduje wszystkie pliki nagłówkowe, które można skompilować w jednostkach nagłówka. Ta właściwość ustawia opcję kompilatora /translateInclude .

Format informacji debugowania

Określa typ informacji debugowania generowanych przez kompilator. Ta właściwość wymaga zgodnych ustawień konsolidatora. Ustawia /Z7opcje kompilatora , /Zi, /ZI (Format informacji debugowania).

Opcje wyboru

  • Brak — nie generuje żadnych informacji debugowania, więc kompilacja może być szybsza.
  • Zgodny z językiem C7 — wybierz typ informacji debugowania utworzonych dla programu i określa, czy te informacje są przechowywane w plikach obiektów (obj) lub w bazie danych programu (PDB).
  • Baza danych programu — tworzy bazę danych programu (PDB), która zawiera informacje o typie i informacje o debugowaniu symbolicznym do użycia z debugerem. Informacje o debugowaniu symbolicznym obejmują nazwy i typy zmiennych i funkcji oraz numery wierszy.
  • Program Database for Edit And Continue — tworzy programową bazę danych, zgodnie z wcześniejszym opisem, w formacie obsługującym funkcję Edytuj i Kontynuuj .

Obsługa debugowania tylko mojego kodu

Dodaje kod pomocniczy do włączania debugowania Just My Code w tej lekcji kompilacji. Ustawia wartość /JMC.

Obsługa funkcji RunTime języka wspólnego

Użyj usługi środowiska uruchomieniowego platformy .NET. Ten przełącznik jest niezgodny z innymi przełącznikami; Aby uzyskać szczegółowe informacje, zobacz dokumentację /clr dotyczącą rodziny przełączników.

Opcje wyboru

Korzystanie z rozszerzenia środowisko wykonawcze systemu Windows

Korzystanie z rozszerzeń języków czasu wykonywania systemu Windows. Ustawia wartość /ZW.

Pomiń transparent startowy

Pomija wyświetlanie baneru logowania podczas uruchamiania kompilatora i wyświetlania komunikatów informacyjnych podczas kompilowania.

Poziom ostrzeżenia

Wybierz, jak bardzo chcesz, aby kompilator dotyczył błędów kodu. Ustawia wartość /W0 - /W4.

Opcje wyboru

  • Wyłącz wszystkie ostrzeżenia — poziom 0 wyłącza wszystkie ostrzeżenia.
  • Poziom1 — poziom 1 wyświetla poważne ostrzeżenia. Poziom 1 jest domyślnym poziomem ostrzeżenia w wierszu polecenia.
  • Poziom2 — poziom 2 wyświetla wszystkie ostrzeżenia na poziomie 1 i ostrzeżenia mniej poważne niż poziom 1.
  • Poziom3 — poziom 3 wyświetla wszystkie ostrzeżenia poziomu 2 i wszystkie inne ostrzeżenia zalecane do celów produkcyjnych.
  • Poziom4 — poziom 4 wyświetla wszystkie ostrzeżenia poziomu 3 oraz ostrzeżenia informacyjne, które w większości przypadków można bezpiecznie zignorować.
  • EnableAllWarnings — włącza wszystkie ostrzeżenia, w tym te wyłączone domyślnie.

Traktuj ostrzeżenia jako błędy

Traktuje ostrzeżenia kompilatora jako błędy. W przypadku nowego projektu najlepszym rozwiązaniem może być użycie /WX w każdej kompilacji. Rozwiąż wszystkie ostrzeżenia, aby zminimalizować trudne do znalezienia wady kodu.

Wersja ostrzeżenia

Ukryj ostrzeżenia wprowadzone po określonej wersji kompilatora. Ustawia wartość /Wv:xx[.yy[.zzzzz]].

Format diagnostyki

Umożliwia zaawansowaną diagnostykę z informacjami o kolumnach i kontekstem źródłowym w komunikatach diagnostycznych.

Opcje wyboru

  • Daszek — zawiera informacje o kolumnie w komunikacie diagnostycznym. Ponadto zwraca odpowiedni wiersz kodu źródłowego z daszkiem wskazującym kolumnę powodującą wykroczenie.
  • Informacje o kolumnie — ponadto udostępnia numer kolumny w wierszu, w którym jest wystawiana diagnostyka, jeśli ma to zastosowanie.
  • Klasyczny — generuje tylko wcześniejsze, zwięzłe komunikaty diagnostyczne z numerem wiersza.

Kontrole SDL

Zalecane testy dodatkowego cyklu projektowania zabezpieczeń (SDL); Obejmuje włączenie dodatkowych funkcji generowania kodu bezpiecznego i włączenie dodatkowych ostrzeżeń dotyczących zabezpieczeń jako błędów. Zestawy /sdl, /sdl-.

Kompilacja z wieloma procesorami

Włącz kompilację wieloprocesorową. Ustawia opcję kompilatora /MP .

Włącz moduł sanitizer adresów

Kompiluje i łączy program z instrumentacją AddressSanitizer. Ta właściwość obsługuje obecnie kompilacje docelowe x86 i x64. Ustawia opcję kompilatora /fsanitize .

Właściwości optymalizacji języka C/C++

Optymalizacja

Wybierz opcję optymalizacji kodu; wybierz pozycję Niestandardowe, aby użyć określonych opcji optymalizacji. Zestawy /Od, ,/O1/O2 .

Opcje wyboru

  • Niestandardowe — optymalizacja niestandardowa.
  • Wyłączone — wyłącz optymalizację.
  • Maksymalna optymalizacja (rozmiar faworyzowania) — odpowiednik /Os /Oy /Ob2 /Gs /GF /Gy
  • Optymalizacja maksymalna (szybkość faworyzowania) — odpowiednik /Oi /Ot /Oy /Ob2 /Gs /GF /Gy
  • Optymalizacje (faworyzowanie szybkości) — odpowiednik /Oi /Ot /Oy /Ob2

Rozszerzanie funkcji wbudowanej

Wybierz poziom wbudowanego rozszerzenia funkcji dla kompilacji. Ustawia wartość /Ob.

Opcje wyboru

  • Wartość domyślna
  • Wyłączone — wyłącza rozszerzenie wbudowane, które jest domyślnie włączone.
  • Tylko __inline — rozszerza tylko funkcje oznaczone jako inline, __forceinlinelub __inline. Lub w funkcji składowej języka C++ zdefiniowanej w deklaracji klasy.
  • Dowolne odpowiednie — rozszerza funkcje oznaczone jako inline lub __inline i dowolną inną funkcję wybraną przez kompilator. (Rozszerzanie odbywa się według uznania kompilatora, często określane jako autoinlining).

Włączanie funkcji wewnętrznych

Włącza funkcje wewnętrzne. Użycie funkcji wewnętrznych generuje szybsze, ale prawdopodobnie większe, kod. Ustawia wartość /Oi.

Faworyzowanie rozmiaru lub szybkości

Czy faworyzować rozmiar kodu, czy szybkość kodu; Należy włączyć optymalizację globalną. Zestawy /Ot, /Os.

Opcje wyboru

  • Faworyzowanie małego kodu — minimalizuje rozmiar eksesów i bibliotek DLL, nakazując kompilatorowi faworyzowanie rozmiaru z szybkością.
  • Faworyzowanie szybkiego kodu — maksymalizuje szybkość ekscesów i bibliotek DLL, nakazując kompilatorowi przyspieszenie pracy nad rozmiarem. (Ta wartość jest wartością domyślną).
  • Żadna z nich — brak optymalizacji rozmiaru i szybkości.

Pomijanie wskaźników ramek

Pomija tworzenie wskaźników ramek na stosie wywołań.

Włączanie optymalizacji Sejf światłowodowych

Umożliwia optymalizację miejsca w pamięci podczas korzystania z światłowodów i dostępu do magazynu lokalnego wątku. Ustawia wartość /GT.

Optymalizacja programu KtoTo le

Umożliwia optymalizacje między modułami przez opóźnienie generowania kodu w celu połączenia czasu. Wymaga opcji konsolidatora Generowanie kodu czasu łącza. Ustawia wartość /GL.

Właściwości preprocesora języka C/C++

Definicje preprocesora

Definiuje symbole przetwarzania wstępnego dla pliku źródłowego.

Niezdefiniuj definicje preprocesora

Określa co najmniej jedną niezdefiniowaną preprocesor. Ustawia wartość /U.

Niezdefiniuj wszystkie definicje preprocesora

Usuń definicję wszystkich wcześniej zdefiniowanych wartości preprocesora. Ustawia wartość /u.

Ignoruj standardowe ścieżki dołączania

Uniemożliwia kompilatorowi wyszukiwanie plików dołączanych w katalogach określonych w zmiennych środowiskowych INCLUDE.

Wstępne przetwarzanie do pliku

Wstępnie przetwarza pliki źródłowe C i C++ oraz zapisuje wstępnie przetworzone dane wyjściowe do pliku. Ta opcja pomija kompilację .obj i nie generuje pliku.

Wstępne przetwarzanie pomija numery wierszy

Przetwarzanie wstępne bez dyrektyw #line.

Zachowaj komentarze

Pomija pasek komentarzy z kodu źródłowego; wymaga ustawienia co najmniej jednej z opcji przetwarzania wstępnego. Ustawia wartość /C.

Właściwości generowania kodu C/C++

Włączanie buforowania ciągów

Kompilator tworzy tylko jedną kopię tylko do odczytu identycznych ciągów na obrazie programu. Powoduje to zmniejszenie programów, optymalizację nazywaną buforowaniem ciągów. /O1, /O2i /ZI automatycznie ustaw /GF opcję.

Włącz minimalną ponowną kompilację

Umożliwia minimalną ponowną kompilację, która określa, czy należy ponownie skompilować pliki źródłowe języka C++, które zawierają zmienione definicje klas C++, przechowywane w plikach nagłówków .h .

Włączanie wyjątków języka C++

Określa model obsługi wyjątków, który ma być używany przez kompilator.

Opcje wyboru

  • Tak z wyjątkami SEH — model obsługi wyjątków , który przechwytuje wyjątki asynchroniczne (ustrukturyzowane) i synchroniczne (C++). Ustawia wartość /EHa.
  • Tak — model obsługi wyjątków, który przechwytuje tylko wyjątki języka C++ i nakazuje kompilatorowi założenie, że funkcje extern C nigdy nie zgłaszają wyjątku C++. Ustawia wartość /EHsc.
  • Tak z funkcjami Extern C — model obsługi wyjątków, który przechwytuje tylko wyjątki języka C++ i informuje kompilator o założeniu, że funkcje extern C zgłaszają wyjątek. Ustawia wartość /EHs.
  • Nie — brak obsługi wyjątków.

Sprawdzanie mniejszego typu

Włącz sprawdzanie konwersji na mniejsze typy, niezgodne z dowolnym typem optymalizacji innym niż debugowanie. Ustawia wartość /RTCc.

Podstawowe testy środowiska uruchomieniowego

Włącz podstawowe testy błędów środowiska uruchomieniowego, niezgodne z dowolnym typem optymalizacji innym niż debugowanie. Zestawy /RTCs, , /RTCu/RTC1.

Opcje wyboru

  • Ramki stosu — umożliwia sprawdzanie błędów w czasie wykonywania ramek stosu.
  • Zmienne niezainicjowane — raporty, gdy zmienna jest używana bez zainicjowania.
  • Oba (/RTC1, equiv. do /RTCsu) - odpowiednik /RTCsu.
  • Ustawienie domyślne — domyślne sprawdzanie środowiska uruchomieniowego.

Biblioteka środowiska uruchomieniowego

Określ bibliotekę środowiska uruchomieniowego do łączenia. Zestawy , , /MD/MTd, , /MDd./MT

Opcje wyboru

  • Wielowątkowy — powoduje, że aplikacja korzysta z wielowątku, statycznej wersji biblioteki czasu wykonywania.
  • Debugowanie wielowątkowe — definiuje _DEBUG i _MT. Ta opcja powoduje również umieszczenie nazwy LIBCMTD.lib biblioteki w .obj pliku przez kompilator, dzięki czemu konsolidator będzie używać LIBCMTD.lib do rozpoznawania symboli zewnętrznych.
  • Wielowątkowa biblioteka DLL — powoduje, że aplikacja korzysta z wielowątku i biblioteki DLL biblioteki czasu wykonywania. Definiuje _MT i _DLL powoduje, że kompilator umieszcza w pliku nazwę biblioteki MSVCRT.lib.obj.
  • Biblioteka DLL debugowania wielowątkowego — definiuje _DEBUGbibliotekę , _MTi _DLL i powoduje, że aplikacja używa wersji specyficznej dla debugowania wielowątkowego i biblioteki DLL biblioteki czasu wykonywania. Powoduje to również umieszczenie nazwy MSVCRTD.lib.obj biblioteki w pliku przez kompilator.

Wyrównanie składowych struktury

Określa 1, 2, 4 lub 8-bajtowe granice dla wyrównania składowych struktury. Ustawia wartość /Zp.

Opcje wyboru

  • 1 Bajt — pakiety struktury na granicach jedno bajtów. Tak samo jak /Zp.
  • 2 bajty — pakiety struktury na granicach dwubajtowych.
  • 4 bajty — struktury pakuje na granicach czterech bajtów.
  • 8 bajtów — struktury pakietów na ośmiu bajtach granic (domyślnie).
  • 16 Bajtów — pakiety struktur na granicach szesnastu bajtów.
  • Domyślne — domyślne ustawienia wyrównania.

Kontrola zabezpieczeń

Sprawdzanie zabezpieczeń pomaga wykrywać przepełnienia buforu stosu, typowy atak na zabezpieczenia programu.

Opcje wyboru

  • Wyłącz sprawdzanie zabezpieczeń — wyłącz sprawdzanie zabezpieczeń. Ustawia wartość /GS-.
  • Włącz sprawdzanie zabezpieczeń — włącz sprawdzanie zabezpieczeń. Ustawia wartość /GS.

Ochrona przepływu sterowania

Kontrola zabezpieczeń ochrony pomaga wykrywać próby wysłania do nielegalnego bloku kodu.

Opcje wyboru

  • Tak — włącz sprawdzanie zabezpieczeń za pomocą zestawów /guard:cffunkcji Guard.
  • Nie

Włączanie łączenia na poziomie funkcji

Umożliwia kompilatorowi spakowanie poszczególnych funkcji w postaci spakowanych funkcji (COMDATs). Wymagane do edycji i kontynuowania pracy. Ustawia wartość /Gy.

Włączanie równoległego generowania kodu

Umożliwia kompilatorowi generowanie kodu równoległego dla pętli zidentyfikowanych przy użyciu #pragma loop(hint_parallel[(n)]) funkcji optymalizacji.

Włączanie rozszerzonego zestawu instrukcji

Włącz korzystanie z instrukcji znalezionych na procesorach obsługujących rozszerzone zestawy instrukcji. Na przykład ulepszenia SSE, SSE2, AVX i AVX2 do IA-32. Ponadto rozszerzenia AVX i AVX2 do x64. Obecnie /arch:SSE i /arch:SSE2 są dostępne tylko podczas tworzenia architektury x86. Jeśli nie określono żadnej opcji, kompilator używa instrukcji znalezionych na procesorach obsługujących SSE2. Korzystanie z rozszerzonych instrukcji można wyłączyć za pomocą polecenia /arch:IA32. Aby uzyskać więcej informacji, zobacz /arch (x86), /arch (x64), /arch (ARM64)i /arch (ARM).

Opcje wyboru

  • Rozszerzenia SIMD przesyłania strumieniowego — rozszerzenia SIMD przesyłania strumieniowego. Ustawia /arch:SSE
  • Rozszerzenia SIMD przesyłania strumieniowego 2 — rozszerzenia SIMD przesyłania strumieniowego 2. Ustawia /arch:SSE2
  • Zaawansowane rozszerzenia wektorów — zaawansowane rozszerzenia wektorów. Ustawia /arch:AVX
  • Zaawansowane rozszerzenia wektorów 2 — zaawansowane rozszerzenia wektorów 2. Ustawia /arch:AVX2
  • Brak rozszerzonych instrukcji — brak rozszerzonych instrukcji. Ustawia /arch:IA32
  • Nie ustawiono — nie ustawiono.

Model zmiennoprzecinkowa

Ustawia model zmiennoprzecinkowy. Zestawy /fp:precise, , /fp:strict/fp:fast.

Opcje wyboru

  • Precise — wartość domyślna. Poprawia spójność testów zmiennoprzecinkowych pod kątem równości i nierówności.
  • Strict — najbardziej rygorystyczny model zmiennoprzecinkowy. /fp:strict powoduje fp_contract wyłączenie i fenv_access włączenie. /fp:except jest dorozumiany i można go wyłączyć, jawnie określając /fp:except-wartość . W przypadku używania z /fp:except-programem wymusza ścisłe semantyka zmiennoprzecinkowa, /fp:strict ale bez szacunku dla wyjątkowych zdarzeń.
  • Szybkie — tworzy najszybszy kod w większości przypadków.

Włączanie wyjątków zmiennoprzecinkowych

Wiarygodny model wyjątków zmiennopozycyjnych. Wyjątki zostaną zgłoszone natychmiast po wyzwoleniu. Ustawia wartość /fp:except.

Tworzenie obrazu z możliwością poprawiania

Gdy funkcja hotpatching jest włączona, kompilator zapewnia, że pierwsza instrukcja każdej funkcji to dwa bajty, zgodnie z wymaganiami dotyczącymi stosowania poprawek na gorąco. Ustawia wartość /hotpatch.

Ograniczenie ryzyka spectre

Środki zaradcze spectre dla CVE 2017-5753. Ustawia wartość /Qspectre.

Opcje wyboru

  • Włączone — włączanie funkcji ograniczania ryzyka spectre dla CVE 2017-5753
  • Wyłączone — nie ustawiono.

Właściwości języka C/C++

Wyłączanie rozszerzeń językowych

Pomija lub włącza rozszerzenia języka. Ustawia wartość /Za.

Traktuj WChar_t jako typ wbudowany

Po określeniu typ wchar_t staje się typem natywnym mapowania na __wchar_t taki sam sposób, jak short mapowanie na __int16. Domyślnie opcja /Zc:wchar_t jest włączona.

Wymuszanie zgodności w zakresie pętli for

Implementuje standardowe zachowanie języka C++ dla for pętli instrukcji za pomocą rozszerzeń firmy Microsoft. Zestawy /Za, /Ze (Wyłącz rozszerzenia językowe. Domyślnie opcja /Zc:forScope jest włączona.

Usuwanie niereferencyjnego kodu i danych

Po określeniu kompilator nie generuje już informacji o symbolach dla nieużywanego kodu i danych.

Wymuszanie zasad konwersji typów

Służy do identyfikowania typu odwołania rvalue w wyniku operacji rzutowania zgodnie ze standardem C++11.

Włączanie informacji o typie czasu wykonywania

Dodaje kod do sprawdzania typów obiektów C++ w czasie wykonywania (informacje o typie środowiska uruchomieniowego lub RTTI). Zestawy /GR, /GR-.

Obsługa protokołu OPEN MP

Włącza rozszerzenia języka OpenMP 2.0. Ustawia wartość /openmp.

C++ Language Standard

Określa standard języka C++ włączony przez kompilator. Wartość domyślna nie ustawia standardowej opcji, więc kompilator używa domyślnego ustawienia języka C++14. W przypadku wybrania określonej wartości odpowiednia /std opcja kompilatora jest set.md).

Opcje wyboru

  • Ustawienie domyślne (ISO C++14 Standard)
  • ISO C++14 Standard (/std:c++14)
  • ISO C++17 Standard (/std:c++17)
  • ISO C++20 Standard (/std:c++20)
  • Wersja zapoznawcza — funkcje z najnowszej wersji roboczej języka C++ (/std:c++latest)

C Language Standard

Określa standard języka C, który jest włączony przez kompilator. Wartość domyślna nie ustawia standardowej opcji, więc kompilator używa domyślnego domyślnego ustawienia MSVC. W przypadku wybrania określonej wartości odpowiednia /std opcja kompilatora jest set.md).

Opcje wyboru

  • Wartość domyślna (starsza wersja MSVC)
  • ISO C11 Standard (/std:c11)
  • ISO C17 (2018) Standard (/std:c17)

Tryb zgodności

Włącza lub pomija tryb zgodności. Ustawia wartość /permissive-.

Włączanie eksperymentalnych modułów biblioteki standardowej C++

Eksperymentalna obsługa modułów języka C++ TS i biblioteki standardowej.

Kompilowanie standardowych modułów bibliotek ISO C++23

Począwszy od programu Visual Studio 17.6, gdy ta właściwość jest włączona, a standard języka C++ jest ustawiony na /std:c++latest, projekty Visual C++ automatycznie znajdą i skompilują moduły biblioteki standardowej ISO C++23. import std Umożliwia to korzystanie z kodu C++ lub import std.compat w jego kodzie.

Właściwości prekompilowanych nagłówków języka C/C++

Tworzenie/używanie prekompilowanego nagłówka

Umożliwia tworzenie lub używanie prekompilowanego nagłówka podczas kompilacji. Zestawy /Yc, /Yu.

Opcje wyboru

  • Create — nakazuje kompilatorowi utworzenie wstępnie skompilowanego pliku nagłówka (.pch), który reprezentuje stan kompilacji w pewnym momencie.
  • Use — nakazuje kompilatorowi użycie istniejącego wstępnie skompilowanego pliku nagłówka (.pch) w bieżącej kompilacji.
  • Nieużywane prekompilowane nagłówki — nie używa wstępnie skompilowanych nagłówków.

Wstępnie skompilowany plik nagłówka

Określa nazwę pliku nagłówka, który ma być używany podczas tworzenia lub używania wstępnie skompilowanego pliku nagłówka. Zestawy /Yc, /Yu.

Wstępnie skompilowany plik wyjściowy nagłówka

Określa ścieżkę lub nazwę wygenerowanego wstępnie skompilowanego pliku nagłówka. Ustawia wartość /Fp.

Właściwości plików wyjściowych języka C/C++

Rozwiń węzeł Źródło atrybutów

Utwórz plik listy z rozszerzonymi atrybutami wstrzykniętymi do pliku źródłowego. Ustawia wartość /Fx.

Dane wyjściowe asemblera

Określa zawartość pliku wyjściowego języka zestawu. Zestawy , , /FAs/FAc, , /FAcs./FA

Opcje wyboru

  • Brak listy — brak listy.
  • Lista tylko do zestawu — kod zestawu; .asm
  • Zestaw z kodem maszyny — kod maszyny i zestawu; .cod
  • Zestaw z kodem źródłowym — kod źródłowy i kod zestawu; .asm
  • Zestaw, kod maszynowy i źródło — zestaw, kod maszyny i kod źródłowy; .cod

Używanie formatu Unicode do wyświetlania listy asemblera

Powoduje utworzenie pliku wyjściowego w formacie UTF-8.

Lokalizacja listy usługi ASM

Określa ścieżkę względną lub nazwę pliku listy ASM; może być nazwą pliku lub katalogu. Ustawia wartość /Fa.

Nazwa pliku obiektu

Określa nazwę, aby zastąpić domyślną nazwę pliku obiektu; może być nazwą pliku lub katalogu. Ustawia wartość /Fo.

Nazwa pliku bazy danych programu

Określa nazwę pliku PDB wygenerowanego przez kompilator; Określa również nazwę bazową dla wymaganego pliku IDB wygenerowanego przez kompilator; może być nazwą pliku lub katalogu. Ustawia wartość /Fd.

Generowanie plików dokumentacji XML

Określa, że kompilator powinien wygenerować pliki komentarzy dokumentacji XML (. XDC). Ustawia wartość /doc.

Nazwa pliku dokumentacji XML

Określa nazwę wygenerowanych plików dokumentacji XML; może być nazwą pliku lub katalogu. Ustawia /doc:<nazwę>.

Właściwości przeglądania informacji w języku C/C++

Włącz przeglądanie informacji

Określa poziom przeglądania informacji w .bsc pliku. Ustawia wartość /FR.

Przeglądaj plik informacji

Określa opcjonalną nazwę pliku informacyjnego przeglądarki. Ustawia /FR<nazwę>.

Dołączanie zewnętrzne

Traktuj pliki dołączone do nawiasów kątowych jako zewnętrzne

Określa, czy pliki dołączone do nawiasów kątowych są traktowane jako zewnętrzne. Ustaw tę właściwość na Wartość Tak , aby ustawić opcję kompilatora /external:anglebrackets .

Poziom ostrzeżenia nagłówka zewnętrznego

Wybierz, jak ściśle chcesz, aby kompilator dotyczył błędów kodu w nagłówkach zewnętrznych. Ta właściwość ustawia opcję kompilatora /external:Wn . Jeśli ta wartość ma wartość Dziedzicz poziom ostrzeżenia projektu lub wartość domyślna, inne /external opcje są ignorowane.

Diagnostyka szablonu w nagłówkach zewnętrznych

Określa, czy oceniać poziom ostrzeżenia w łańcuchu tworzenia wystąpień szablonu. Ustaw tę właściwość na Wartość Tak , aby ustawić opcję kompilatora /external:templates- .

Wyłączanie analizy kodu dla nagłówków zewnętrznych

Wyłącza analizę kodu dla nagłówków zewnętrznych. Ustawia opcję kompilatora /analyze:external- .

Zestaw reguł analizy dla nagłówków zewnętrznych

Określa zastępowanie zestawu reguł analizy kodu dla nagłówków zewnętrznych. Jeśli nie zostanie określone, zostanie użyte ustawienie Analiza kodu. Ustawia opcję kompilatora /analyze:external:ruleset path .

Właściwości zaawansowane języka C/C++

Konwencja wywoływania

Wybierz domyślną konwencję wywoływania aplikacji (można zastąpić przez funkcję). Zestawy , , /Gz/Gr, , /Gv./Gd

Opcje wyboru

  • __cdecl - Określa konwencję __cdecl wywoływania dla wszystkich funkcji z wyjątkiem funkcji składowych języka C++ i funkcji oznaczonych __stdcall lub __fastcall.
  • __fastcall - Określa konwencję __fastcall wywoływania dla wszystkich funkcji z wyjątkiem funkcji składowych języka C++ i funkcji oznaczonych __cdecl lub __stdcall. Wszystkie __fastcall funkcje muszą mieć prototypy.
  • __stdcall - Określa konwencję __stdcall wywoływania dla wszystkich funkcji z wyjątkiem funkcji składowych języka C++ i funkcji oznaczonych __cdecl lub __fastcall. Wszystkie __stdcall funkcje muszą mieć prototypy.
  • __vectorcall- Określa konwencję __vectorcall wywoływania dla wszystkich funkcji z wyjątkiem funkcji składowych języka C++ i funkcji oznaczonych , __cdecl__fastcalllub __stdcall. Wszystkie __vectorcall funkcje muszą mieć prototypy.

Kompiluj jako

Wybierz opcję kompilowania języka dla plików źródłowych. Zestawy /TC, , /TP/interface, /internalPartitionlub /exportHeader opcje.

Opcje wyboru

  • Ustawienie domyślne — ustawienie domyślne .
  • Skompiluj jako kod C (/TC) — skompiluj określone pliki źródłowe jako kod C. Domyślnie pliki z .c rozszerzeniem są kompilowane jako C.
  • Skompiluj jako kod C++ (/TP) — skompiluj określone pliki źródłowe jako kod C++. Domyślnie wszystkie pliki źródłowe, które nie mają .crozszerzenia , .ixx, .cppm.hlub nie są kompilowane jako C++.
  • Skompiluj jako kod modułu C++ (/interface) — skompiluj określone pliki źródłowe jako kod modułu C++. Domyślnie pliki z .ixx rozszerzeniem lub .cppm są kompilowane jako kod modułu C++.
  • Skompiluj jako partycję wewnętrzną modułu C++ (/internalPartition) — skompiluj określone pliki źródłowe jako partycję wewnętrzną modułu C++.
  • Skompiluj jako jednostkę nagłówka języka C++ (/exportHeader) — skompiluj określone pliki źródłowe jako jednostkę nagłówka języka C++. Domyślnie pliki z .h rozszerzeniem lub brakiem rozszerzenia są kompilowane jako jednostki nagłówka.

Wyłącz określone ostrzeżenia

Wyłącz określone numery ostrzeżeń. Umieść numery ostrzeżeń na liście rozdzielanej średnikami. Ustawia /wd<liczbę>.

Plik dołączania wymuszonego

co najmniej jeden wymuszony plik dołączania. Ustawia /FI<nazwę>.

Wymuszony plik #using

Określa co najmniej jeden wymuszony plik #using. Ustawia /FU<nazwę>.

Pokaż elementy dołączane

Generuje listę plików dołączanych z danymi wyjściowymi kompilatora. Ustawia wartość /showIncludes.

Używanie pełnych ścieżek

Użyj pełnych ścieżek w komunikatach diagnostycznych. Ustawia wartość /FC.

Pomiń domyślną nazwę biblioteki

Nie zawiera domyślnych nazw bibliotek w .obj plikach. Ustawia wartość /Zl.

Wewnętrzne raportowanie błędów kompilatora

Uwaga

Ta opcja jest przestarzały. Począwszy od systemu Windows Vista, raportowanie błędów jest kontrolowane przez ustawienia Raportowanie błędów systemu Windows (WER).

Traktuj określone ostrzeżenia jako błędy

Traktuje ostrzeżenie określonego kompilatora jako błąd, w którym n jest ostrzeżeniem kompilatora.

Opcje dodatkowe

Dodatkowe opcje.