Udostępnij za pośrednictwem


Ustawianie właściwości kompilatora i kompilacji

W środowisku IDE programu Visual Studio można wyświetlać i edytować właściwości wymagane do skompilowania i zbudowania projektu. Te informacje obejmują nazwę aplikacji, rozszerzenie (takie jak DLL, LIB, EXE), opcje kompilatora, opcje konsolidatora, ustawienia debugera i niestandardowe kroki kompilacji.

Te właściwości można wyświetlać i modyfikować przy użyciu stron 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 Active Template Library (ATL) ma właściwości związane z plikami języka MICROSOFT Interface Definition Language (MIDL), ale te właściwości są nieobecne w podstawowej aplikacji konsolowej. Właściwości domyślne są wyświetlane w okienku Zaawansowane w oknie Strony właściwości :

Zrzut ekranu przedstawiający okno dialogowe właściwości projektu programu Visual Studio z wybranym okienkiem Zaawansowane. Właściwości, takie jak Użycie MFC, Zestaw znaków itd., są wyróżnione.

Zastosowanie właściwości do konfiguracji budowania 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 debug, czy release. 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 dotyczyć tylko kompilacji Debug Win32, czy również Debug ARM64 i Debug x64? Na przykład właściwość Optymalizacja jest domyślnie ustawiona na Maksymalizuj szybkość (/O2) w konfiguracji Release, ale jest wyłączona w konfiguracji Debug.

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 debugowania Win32, obecnie aktywnej konfiguracji, co pokazują czerwone strzałki.

Zrzut ekranu przedstawiający okno dialogowe Strony właściwości programu Visual Studio.

Strona jest otwarta dla języka C/C++, optymalizacja. Ustawienie Optymalizacji jest ustawione na Wyłączone (/Od), co jest wskazane. Strzałka wskazuje relację między ustawieniem Konfiguracji na stronie właściwości projektu, które jest ustawione na Aktywne (Debug), a ustawieniem w rozwijanej liście konfiguracji rozwiązania na pasku narzędzi, które jest ustawione na Debug. Inna strzałka wskazuje na relację między ustawieniem Platforma w oknie właściwości projektu, która jest ustawiona na Active(Win32), a ustawieniem Platformy rozwiązań na pasku narzędzi, które jest ustawione na x86.

Poniższa ilustracja przedstawia tę samą stronę właściwości projektu, ale konfiguracja została zmieniona na „Release”, czyli „Wydanie”. Zanotuj inną wartość właściwości Optimization. Pamiętaj również, że aktywna konfiguracja to nadal Debug. Można ustawić właściwości każdej konfiguracji tutaj; nie musi być aktywna.

Zrzut ekranu przedstawiający okno dialogowe Strony właściwości projektu programu Visual Studio. Lista rozwijana Konfiguracja jest wywoływana i jest ustawiona na Wartość Wydanie. Ustawienie optymalizacji ma wartość Maksymalizuj szybkość ukośnika O2.

Platformy docelowe

Platforma docelowa odnosi się do rodzaju urządzenia i systemu operacyjnego, na jakim działa 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:

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 Stron właściwości wyświetlane są tylko te strony, 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 katalogów i ścieżek

MSBuild obsługuje używanie stałych czasu kompilacji dla określonych wartości tekstowych, takich jak katalogi i ścieżki, nazywanych 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. Możesz również lepiej upewnić się, że ustawienia projektu prawidłowo uczestniczą 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 KatalogiVC++, 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):

Zrzut ekranu przedstawiający okno dialogowe Strony właściwości programu Visual Studio dla reguł dotyczących różnych katalogów.

Strona Katalogi VC++ 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 include, 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

  • Globalne makra
    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 elementowi PropertyGroup w programie MSBuild.

  • Makra elementów
    Makra elementów mają składnię %(name). W przypadku pliku makro dotyczy tylko tego pliku. Na przykład można użyć %(AdditionalIncludeDirectories), aby określić katalogi zawierające, które dotyczą tylko określonego pliku. Tego rodzaju makro elementu odpowiada ItemGroup 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ąć makro %(PreprocessorDefinitions) elementu, które ma zastosowanie do wszystkich plików .cpp w projekcie. Tego rodzaju makro elementu odpowiada metadanym ItemDefinitionGroup w MSBuildzie. Aby uzyskać więcej informacji, zobacz Definicje elementów.

Makra zdefiniowane przez użytkownika

Możesz tworzyć makra zdefiniowane przez użytkownika, które będą używane jako zmienne w kompilacjach projektów. 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 jest parą 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

  1. Otwórz okno Menedżer właściwości. Na pasku menu wybierz opcję Wyświetl>Inne okna>Menedżer właściwości. 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 Strona właściwości dla tej karty właściwości.

  2. W lewym okienku okna dialogowego wybierz pozycję Makra użytkownika. W okienku po prawej stronie wybierz przycisk Dodaj makro, aby otworzyć okno dialogowe Dodaj makro użytkownika.

  3. 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.

Zrzut ekranu przedstawiający stronę właściwości projektu programu Visual Studio dla katalogów VC++.

Edytor właściwości dla ustawienia Dołączanie katalogów jest otwarty. Przedstawia wartość ocenianą dla katalogów dołączanych, 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 ustawień 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 domyślnych ustawieniach nadrzędnych lub projektowych jest zaznaczone i dodajesz nową wartość, jest ona dołączana 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.

Zrzut ekranu przedstawiający okno dialogowe edytora właściwości po wybraniu przycisku Makra.

Edytor właściwości dołączania katalogów jest otwarty. Wartość oceniana jest wyświetlana wraz z dziedziczonymi wartościami. 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łączanego do projektu ważne jest, aby nie przesłaniać wszystkich katalogów domyślnych. Poprawnym sposobem dodania katalogu jest dołączenie nowej ścieżki, na przykład C:\MyNewIncludeDir\, a następnie dołączenie $(IncludePath) makra 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: Wyszukaj tylko w nazwach właściwości (ignorując wielkość 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, PATHi 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 LIBwartości , LIBPATHi 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 dodaje przedrostek do wartości właściwości katalogów wykonalnych katalogów 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łaściwości konfiguracji i wybierz Debugowanie.

W prawym okienku zmień ustawienia projektu Środowisko lub Scal Środowisko, a następnie wybierz przycisk OK.

Artykuły w tej sekcji

Zobacz też