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 /Z7
opcje 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
- Brak obsługi funkcji RunTime języka wspólnego — brak obsługi funkcji RunTime języka wspólnego
- Obsługa funkcji RunTime języka wspólnego — tworzy metadane dla aplikacji, które mogą być używane przez inne aplikacje CLR. Umożliwia również aplikacji korzystanie z typów i danych w metadanych innych składników CLR.
- Obsługa funkcji RunTime języka wspólnego pure MSIL — tworzy plik wyjściowy tylko MSIL bez natywnego kodu wykonywalnego, chociaż może zawierać typy natywne skompilowane w MSIL.
- Bezpieczna obsługa funkcji RunTime języka wspólnego MSIL — tworzy tylko MSIL (bez natywnego kodu wykonywalnego) i weryfikowalny plik wyjściowy.
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
,__forceinline
lub__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 bezpieczeństwa światłowodowego
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 całego programu
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
, /O2
i /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 nazwyLIBCMTD.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
_DEBUG
bibliotekę ,_MT
i_DLL
i powoduje, że aplikacja używa wersji specyficznej dla debugowania wielowątkowego i biblioteki DLL biblioteki czasu wykonywania. Powoduje to również umieszczenie nazwyMSVCRTD.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:cf
funkcji 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
powodujefp_contract
wyłączenie ifenv_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
__fastcall
lub__stdcall
. Wszystkie__vectorcall
funkcje muszą mieć prototypy.
Kompiluj jako
Wybierz opcję kompilowania języka dla plików źródłowych. Zestawy /TC
, , /TP
/interface, /internalPartition
lub /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ą.c
rozszerzenia ,.ixx
,.cppm
.h
lub 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.