Ustawianie właściwości kompilatora i kompilacji
W środowisku IDE właściwości uwidaczniają informacje potrzebne do utworzenia projektu. Te informacje obejmują nazwę aplikacji, rozszerzenie (takie jak DLL, LIB, EXE), opcje kompilatora, opcje konsolidatora, ustawienia debugera, niestandardowe kroki kompilacji i wiele innych rzeczy. Zazwyczaj strony właściwości są używane do wyświetlania i modyfikowania tych właściwości. Aby uzyskać dostęp do stron właściwości, wybierz pozycję >Właściwości projektu w menu głównym lub kliknij prawym przyciskiem myszy węzeł projektu w Eksplorator rozwiązań i wybierz polecenie Właściwości.
Właściwości domyślne
Podczas tworzenia projektu system przypisuje wartości dla różnych właściwości. Wartości domyślne różnią się w zależności od rodzaju projektu i opcji wybieranych w kreatorze aplikacji. Na przykład projekt ATL ma właściwości związane z plikami MIDL, ale te właściwości są nieobecne w podstawowej aplikacji konsolowej. Właściwości domyślne są wyświetlane w okienku Ogólne na stronach właściwości:
Strona Ogólne jest otwarta. Sekcja Project Defaults (Wartości domyślne projektu) jest wyróżniona, która zawiera wartość Typ konfiguracji ustawioną na Wartość Application (.exe), use of MFC set (Użyj standardowych bibliotek systemu Windows), Character set is Unicode (Zestaw znaków), Common Language Runtime Support is set to No Common Language Runtime Support (Obsługa środowiska uruchomieniowego języka wspólnego), optymalizacja całego programu jest ustawiona na Wartość Nie ustawiono opcji Brak całej optymalizacji programu, a obsługa aplikacji ze Sklepu Windows ma wartość Nie.
Stosowanie właściwości do konfiguracji kompilacji i platform docelowych
Niektóre właściwości, takie jak nazwa aplikacji, mają zastosowanie do wszystkich odmian kompilacji i platform docelowych, niezależnie od tego, czy jest to kompilacja debugowania, czy wydania. Jednak większość właściwości jest zależna od konfiguracji. Aby wygenerować prawidłowy kod, kompilator musi znać zarówno konkretną platformę, na której działa program, jak i określone opcje kompilatora do użycia. Dlatego po ustawieniu właściwości należy zwrócić uwagę na konfigurację i platformę, do której należy zastosować nową wartość. Czy powinna być stosowana tylko do kompilacji Win32 debugowania, czy też powinna być stosowana do debugowania arm64 i debugowania x64? Na przykład właściwość Optymalizacja jest domyślnie ustawiona na Wartość Maksymalizuj szybkość (/O2) w konfiguracji wydania, ale jest wyłączona w konfiguracji debugowania.
Zawsze można zobaczyć i zmienić konfigurację i platformę, do której powinna mieć zastosowanie wartość właściwości. Na poniższej ilustracji przedstawiono strony właściwości z kontrolkami konfiguracji i informacji o platformie u góry. Gdy właściwość Optimization jest ustawiona w tym miejscu, dotyczy tylko kompilacji Win32 debugowania, obecnie aktywnej konfiguracji, jak pokazano na czerwono.
Strona jest otwarta dla języka C/C++, optymalizacja. Ustawienie Optymalizacja jest ustawione na Wyłączone (/Od), które jest wywoływane. Strzałka wywołuje relację między ustawieniem Konfiguracja na stronie właściwości projektu, która jest ustawiona na Wartość Active(Debug) i ustawienie na liście rozwijanej Konfiguracja rozwiązania na pasku narzędzi, który jest ustawiony na Debugowanie. Inna strzałka wywołuje relację między ustawieniem Platforma na stronie właściwości projektu, która jest ustawiona na Wartość Active(Win32) i ustawienie na liście rozwijanej Platforma rozwiązań na pasku narzędzi, który jest ustawiony na x86.
Poniższa ilustracja przedstawia tę samą stronę właściwości projektu, ale konfiguracja została zmieniona na Release (Wydanie). Zanotuj inną wartość właściwości Optimization. Należy również pamiętać, że aktywna konfiguracja jest nadal debugowania. Właściwości dowolnej konfiguracji można ustawić tutaj; nie musi być aktywny.
Platformy docelowe
Platforma docelowa odnosi się do rodzaju urządzenia i systemu operacyjnego, na których będzie uruchamiany plik wykonywalny. Projekt można utworzyć dla więcej niż jednej platformy. Dostępne platformy docelowe dla projektów C++ zależą od rodzaju projektu. Obejmują one, ale nie są ograniczone do Win32, x64, ARM, ARM64, Android i iOS. Platforma docelowa x86 , którą można zobaczyć w programie Configuration Manager , jest identyczna z win32 w natywnych projektach języka C++. Win32 oznacza 32-bitowy system Windows i x64 oznacza 64-bitowy system Windows. Aby uzyskać więcej informacji na temat tych dwóch platform, zobacz Running 32-bit applications (Uruchamianie aplikacji 32-bitowych).
Wartość dowolnej platformy docelowej procesora CPU widoczna w programie Configuration Manager nie ma wpływu na natywne projekty języka C++. Dotyczy to tylko języków C++/CLI i innych typów projektów platformy .NET. Aby uzyskać więcej informacji, zobacz /CLRIMAGETYPE
(Określ typ obrazu CLR).
Aby uzyskać więcej informacji na temat ustawiania właściwości kompilacji debugowania, zobacz:
- Ustawienia projektu dla konfiguracji debugowania w języku C++
- Ustawienia debugera i przygotowanie
- Przygotowywanie debugowania: Typy projektów Visual C++
- Określanie plików symboli (pdb) i plików źródłowych w debugerze programu Visual Studio
Opcje kompilatora i konsolidatora języka C++
Opcje kompilatora i konsolidatora języka C++ znajdują się w węzłach C/C++ i konsolidatora w okienku po lewej stronie w obszarze Właściwości konfiguracji. Te opcje przekładają się bezpośrednio na opcje wiersza polecenia przekazywane do kompilatora. Aby przeczytać dokumentację dotyczącą określonej opcji, wybierz opcję w środkowym okienku i naciśnij F1. Możesz też przejrzeć dokumentację wszystkich opcji dostępnych w opcjach kompilatora MSVC i opcjach konsolidatora MSVC.
W oknie dialogowym Strony właściwości są wyświetlane tylko strony właściwości, które są istotne dla bieżącego projektu. Jeśli na przykład projekt nie ma .idl
pliku, strona właściwości MIDL nie jest wyświetlana. Aby uzyskać więcej informacji na temat ustawień na każdej stronie właściwości, zobacz Strony właściwości (C++).
Wartości katalogu i ścieżki
Program MSBuild obsługuje używanie stałych czasu kompilacji dla niektórych wartości ciągów, takich jak katalogi i ścieżki nazywane makrami. Makro może odwoływać się do wartości zdefiniowanej przez program Visual Studio lub system MSBuild albo do wartości zdefiniowanej przez użytkownika. Makra wyglądają następująco: $(macro-name)
lub %(item-macro-name)
. Są one widoczne na stronach właściwości, gdzie można odwoływać się do nich i modyfikować za pomocą Edytora właściwości. Używaj makr zamiast zakodowanych na sztywno wartości, takich jak ścieżki katalogów. Makra ułatwiają udostępnianie ustawień właściwości między maszynami i między wersjami programu Visual Studio. Ponadto możesz lepiej upewnić się, że ustawienia projektu są prawidłowo współuzadniane w dziedziczeniu właściwości.
Na poniższej ilustracji przedstawiono strony właściwości projektu visual Studio C++. W okienku po lewej stronie jest wybrana reguła Katalogi VC++, a w okienku po prawej stronie są wyświetlane właściwości skojarzone z tą regułą. Wartości właściwości są często makrami, takimi jak $(VC_SourcePath)
:
Strona VC plus i Katalogi jest otwarta, która ma właściwości reguł katalogów VC++. Przykładowa reguła to Katalogi źródłowe, które są ustawione na $(VC_SourcePath). Istnieją reguły dotyczące katalogów dołączania, katalogów bibliotek, katalogów wykonywalnych itd.
Edytor właściwości umożliwia wyświetlenie wartości wszystkich dostępnych makr.
Wstępnie zdefiniowane makra
Makra globalne:
Makra globalne mają zastosowanie do wszystkich elementów w konfiguracji projektu. Makro globalne ma składnię$(name)
. Przykładem makra globalnego jest$(VCInstallDir)
, które przechowuje katalog główny instalacji programu Visual Studio. Makro globalne odpowiada elementowiPropertyGroup
w programie MSBuild.Makra elementów
Makra elementów mają składnię%(name)
. W przypadku pliku makro elementu dotyczy tylko tego pliku — na przykład można%(AdditionalIncludeDirectories)
określić katalogi dołączane, które mają zastosowanie tylko do określonego pliku. Tego rodzaju makro elementu odpowiadaItemGroup
metadanym w programie MSBuild. W przypadku użycia w kontekście konfiguracji projektu makro elementu ma zastosowanie do wszystkich plików określonego typu. Na przykład właściwość konfiguracji definicji preprocesora języka C/C++ może przyjąć%(PreprocessorDefinitions)
makro elementu, które ma zastosowanie do wszystkich plików .cpp w projekcie. Tego rodzaju makro elementu odpowiadaItemDefinitionGroup
metadanym w programie MSBuild. Aby uzyskać więcej informacji, zobacz Definicje elementów.
Makra zdefiniowane przez użytkownika
Makra zdefiniowane przez użytkownika można tworzyć jako zmienne w kompilacjach projektu. Na przykład, można utworzyć makro zdefiniowane przez użytkownika, które udostępnia wartość do niestandardowego kroku kompilacji lub niestandardowego narzędzia kompilacji. Makro zdefiniowane przez użytkownika to para nazwa/wartość. W pliku projektu użyj $(name)
notacji, aby uzyskać dostęp do wartości.
Makro zdefiniowane przez użytkownika jest przechowywane w arkuszu właściwości. Jeśli projekt nie zawiera jeszcze arkusza właściwości, możesz go utworzyć, wykonując kroki opisane w sekcji Udostępnianie lub ponowne używanie ustawień projektu programu Visual Studio.
Aby utworzyć makro zdefiniowane przez użytkownika
Otwórz okno Menedżer właściwości. (Na pasku menu wybierz pozycję Wyświetl>Menedżera właściwości lub Wyświetl>inny Menedżer właściwości systemu Windows).> Otwórz menu skrótów dla arkusza właściwości (jego nazwa kończy się na
.user
), a następnie wybierz pozycję Właściwości. Zostanie otwarte okno dialogowe Strony właściwości dla tego arkusza właściwości.W lewym okienku okna dialogowego wybierz pozycję Makra użytkownika. W okienku po prawej stronie wybierz przycisk Dodaj makro , aby otworzyć okno dialogowe Dodawanie makra użytkownika.
W oknie dialogowym określ nazwę i wartość dla makra. Opcjonalnie zaznacz pole wyboru Ustaw to makro jako zmienną środowiskową w środowisku kompilacji.
Edytor właściwości
Edytor właściwości służy do modyfikowania niektórych właściwości ciągów i zaznaczania makr jako wartości. Aby otworzyć Edytor właściwości, zaznacz właściwość na stronie właściwości, a następnie wybierz strzałkę w dół po prawej stronie. Jeśli lista rozwijana zawiera <pozycję Edytuj>, możesz wybrać ją, aby wyświetlić Edytor właściwości dla tej właściwości.
Edytor właściwości dla ustawienia Dołączanie katalogów jest otwarty. Przedstawia wartość szacowaną dla katalogów dołączania, czyli C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\Include. Przedstawia dwie dziedziczone wartości: $(VC_IncludePath) i $(WindowsSDK_IncludePath). Zaznaczono pole wyboru "Dziedzicz z wartości nadrzędnych lub domyślnych projektu".
W Edytorze właściwości możesz wybrać przycisk Makra , aby wyświetlić dostępne makra i ich bieżące wartości. Na poniższej ilustracji przedstawiono Edytor właściwości dla właściwości Dodatkowe katalogi dołączania po wybraniu przycisku Makra . Gdy pole wyboru Dziedzicz po wartościach nadrzędnych lub projektowych jest zaznaczone i dodajesz nową wartość, jest on dołączany do wszystkich wartości, które są obecnie dziedziczone. Jeśli usuniesz zaznaczenie pola wyboru, nowa wartość zamieni wartości dziedziczone. W większości przypadków pozostaw zaznaczone pole wyboru.
Edytor właściwości dołączania katalogów jest otwarty. Wartość szacowana jest wyświetlana wraz z dziedziczone wartości. Pole listy zawiera różne makra i ich wartości, takie jak $(CharacterSet), które są ustawione na Unicode.
Dodawanie katalogu include do zestawu katalogów domyślnych
Po dodaniu katalogu dołączania do projektu ważne jest, aby nie przesłaniać wszystkich katalogów domyślnych. Prawidłowym sposobem dodania katalogu jest dołączenie nowej ścieżki, na przykład "C:\MyNewIncludeDir\
", a następnie dołączenie makra $(IncludePath)
do wartości właściwości.
Szybkie przeglądanie i wyszukiwanie wszystkich właściwości
Strona właściwości Wszystkie opcje (w węźle Właściwości>konfiguracji C/C++ w oknie dialogowym Strony właściwości) umożliwia szybkie przeglądanie i wyszukiwanie właściwości dostępnych w bieżącym kontekście. Ma specjalne pole wyszukiwania i prostą składnię, aby pomóc w filtrowaniu wyników:
Brak prefiksu:
Wyszukiwanie tylko w nazwach właściwości (podciąg bez uwzględniania wielkości liter).
"/
" lub "-
":
Wyszukiwanie tylko w przełącznikach kompilatora (prefiks bez uwzględniania wielkości liter)
v
:
Wyszukiwanie tylko w wartościach (podciąg bez uwzględniania wielkości liter).
Ustawianie zmiennych środowiskowych dla kompilacji
Kompilator MSVC (cl.exe) rozpoznaje pewne zmienne środowiskowe, w szczególności LIB
, LIBPATH
, PATH
i INCLUDE
. Podczas kompilowania przy użyciu środowiska IDE właściwości ustawione na stronie właściwości katalogów VC++ są używane do ustawiania tych zmiennych środowiskowych. Jeśli LIB
wartości , LIBPATH
i INCLUDE
zostały już ustawione, na przykład przez wiersz polecenia dewelopera, są zastępowane wartościami odpowiednich właściwości MSBuild. Następnie kompilacja poprzedza wartość właściwości katalogów wykonywalnych VC++ na PATH
. Zmienną środowiskową zdefiniowaną przez użytkownika można ustawić, tworząc makro zdefiniowane przez użytkownika, a następnie zaznaczając pole wyboru Ustaw to makro jako zmienną środowiskową w środowisku kompilacji.
Ustawianie zmiennych środowiskowych dla sesji debugowania
W lewym okienku okna dialogowego Strony właściwości projektu rozwiń węzeł Właściwości konfiguracji, a następnie wybierz pozycję Debugowanie.
W okienku po prawej stronie zmodyfikuj ustawienia projektu Środowisko lub Scal środowisko , a następnie wybierz przycisk OK .
W tym obszarze
Udostępnianie lub ponowne używanie ustawień projektów programu Visual Studio
Jak utworzyć .props
plik z niestandardowymi ustawieniami kompilacji, które mogą być współużytkowane lub używane ponownie.
Dziedziczenie właściwości projektu
Opisuje kolejność oceny zmiennych .props
środowiskowych , , .targets
.vcxproj
, plików i w procesie kompilacji.
Modyfikowanie właściwości i obiektów docelowych bez zmieniania pliku projektu
Jak utworzyć tymczasowe ustawienia kompilacji bez konieczności modyfikowania pliku projektu.
Zobacz też
Projekty programu Visual Studio — C++
.vcxproj
i .props
struktura plików
Pliki XML strony właściwości