Nastavení vlastností kompilátoru a sestavení

V integrovaném vývojovém prostředí (IDE) vlastnosti zveřejňují informace potřebné k sestavení projektu. Tyto informace zahrnují název aplikace, rozšíření (například DLL, LIB, EXE), možnosti kompilátoru, možnosti linkeru, nastavení ladicího programu, vlastní kroky sestavení a mnoho dalších věcí. Stránky vlastností se obvykle používají k zobrazení a úpravě těchto vlastností. Chcete-li získat přístup ke stránkám vlastností, zvolte v>hlavní nabídce příkaz Vlastnosti projektu nebo klikněte pravým tlačítkem myši na uzel projektu v Průzkumník řešení a zvolte Vlastnosti.

Výchozí vlastnosti

Při vytváření projektu systém přiřadí hodnoty pro různé vlastnosti. Výchozí hodnoty se poněkud liší v závislosti na typu projektu a na možnostech, které zvolíte v průvodci aplikací. Projekt ATL má například vlastnosti související se soubory MIDL, ale tyto vlastnosti chybí v základní konzolové aplikaci. Výchozí vlastnosti se zobrazují v podokně Obecné na stránkách vlastností:

Snímek obrazovky s dialogovým oknem vlastností projektu sady Visual Studio

Otevře se stránka Obecné. Zvýrazněná část Výchozí nastavení projektu, která obsahuje typ konfigurace nastavený na aplikaci (.exe), použití knihovny MFC pro použití standardních knihoven Systému Windows, znaková sada je Unicode, podpora modulu Common Language Runtime je nastavená na Žádná podpora modulu Common Language Runtime, Kdo le Program optimalizace je nastavena na Ne Kdo le Program Optimization a podpora aplikace pro Windows Store je nastavena na Ne.

Použití vlastností pro sestavení konfigurací a cílových platforem

Některé vlastnosti, jako je název aplikace, se vztahují na všechny varianty sestavení a cílové platformy, ať už jde o sestavení ladění nebo vydání. Většina vlastností je ale závislá na konfiguraci. Aby kompilátor vygeneroval správný kód, musí znát jak konkrétní platformu, na které program běží, tak i konkrétní možnosti kompilátoru, které se mají použít. Při nastavování vlastnosti je proto důležité věnovat pozornost tomu, na jakou konfiguraci a platformu by se nová hodnota měla použít. Měl by platit jenom pro ladění sestavení Win32, nebo by se měl použít také pro ladění ARM64 a ladění x64? Například vlastnost Optimization je ve výchozím nastavení nastavena na Maximalizovat rychlost (/O2) v konfiguraci vydané verze, ale je zakázaná v konfiguraci ladění.

Vždy můžete zobrazit a změnit konfiguraci a platformu, na kterou by se měla použít hodnota vlastnosti. Následující obrázek znázorňuje stránky vlastností s ovládacími prvky pro konfiguraci a informace o platformě v horní části. Pokud je zde nastavena vlastnost Optimalizace, platí pouze pro ladění sestavení Win32, aktuálně aktivní konfigurace, jak je znázorněno červenými šipkami.

Snímek obrazovky s dialogovým oknem Stránky vlastností sady Visual Studio

Stránka je otevřená pro C/C++, Optimalizaci. Nastavení Optimalizace je nastaveno na Zakázáno (/Od), které je zvýrazněno. Šipka volá relaci mezi nastavením Konfigurace na stránce vlastností projektu, která je nastavená na Active(Debug) a nastavením v rozevíracím seznamu Konfigurace řešení na panelu nástrojů, který je nastavený na Ladění. Další šipka označuje vztah mezi nastavením Platformy na stránce vlastností projektu, která je nastavená na Aktivní (Win32) a nastavením v rozevíracím seznamu Platforma řešení na panelu nástrojů, který je nastavený na x86.

Následující obrázek znázorňuje stejnou stránku vlastností projektu, ale konfigurace byla změněna na Verzi. Poznamenejte si jinou hodnotu vlastnosti Optimalizace. Všimněte si také, že aktivní konfigurace je stále laděná. Zde můžete nastavit vlastnosti pro libovolnou konfiguraci; nemusí být aktivní.

Snímek obrazovky s dialogem Stránek vlastností projektu sady Visual Studio Rozevírací seznam Konfigurace je označený a je nastavený na Verzi. Nastavení optimalizace optimalizace > jazyka C/C++ > je nastaveno na maximální rychlost (/O2).

Cílové platformy

Cílová platforma odkazuje na typ zařízení a operačního systému, na který bude spustitelný soubor běžet. Můžete vytvořit projekt pro více než jednu platformu. Dostupné cílové platformy pro projekty C++ závisí na druhu projektu. Patří mezi ně win32, x64, ARM, ARM, ARM64, Android a iOS, ale nejsou omezené. Cílová platforma x86, kterou můžete vidět v Configuration Manageru, je stejná jako Win32 v nativních projektech C++. Win32 znamená 32bitovou verzi Windows a x64 znamená 64bitovou verzi Windows. Další informace o těchto dvou platformách najdete v tématu Spouštění 32bitových aplikací.

Hodnota jakékoli cílové platformy procesoru , kterou můžete vidět v Configuration Manageru , nemá žádný vliv na nativní projekty C++. Je relevantní jenom pro C++/CLI a další typy projektů .NET. Další informace najdete v tématu /CLRIMAGETYPE (Určení typu image CLR).

Další informace o nastavení vlastností pro sestavení ladění najdete v tématu:

Možnosti kompilátoru a linkeru jazyka C++

Možnosti kompilátoru a linkeru jazyka C++ se nacházejí v uzlech C/C++ a Linkeru v levém podokně v části Vlastnosti konfigurace. Tyto možnosti se překládají přímo na možnosti příkazového řádku, které se předávají kompilátoru. Pokud si chcete přečíst dokumentaci o konkrétní možnosti, vyberte ji v prostředním podokně a stiskněte klávesu F1. Nebo můžete procházet dokumentaci ke všem možnostem v možnostech kompilátoru MSVC a možnostech linkeru MSVC.

Dialogové okno Stránky vlastností zobrazuje pouze stránky vlastností, které jsou relevantní pro aktuální projekt. Pokud například projekt soubor nemá .idl , stránka vlastností MIDL se nezobrazí. Další informace o nastavení na každé stránce vlastností naleznete v tématu Stránky vlastností (C++).

Hodnoty adresáře a cesty

Nástroj MSBuild podporuje použití konstant doby kompilace pro určité řetězcové hodnoty, jako jsou například adresáře a cesty, označované jako makra. Makro může odkazovat na hodnotu definovanou sadou Visual Studio nebo systémem MSBuild nebo na uživatelem definovanou hodnotu. Makra vypadají jako $(macro-name) nebo %(item-macro-name). Zobrazují se na stránkách vlastností, kde je můžete odkazovat a upravovat pomocí Editoru vlastností. Místo pevně zakódovaných hodnot, jako jsou cesty k adresáři, použijte makra. Makra usnadňují sdílení nastavení vlastností mezi počítači a mezi verzemi sady Visual Studio. A můžete lépe zajistit, aby se nastavení projektu správně účastnilo dědičnosti vlastností.

Následující obrázek znázorňuje stránky vlastností projektu Visual Studio C++. V levém podokně je vybráno pravidlo adresářůVC++ a v pravém podokně jsou uvedeny vlastnosti přidružené k danému pravidlu. Hodnoty vlastností jsou často makra, například $(VC_SourcePath):

Snímek obrazovky s dialogovým oknem Stránky vlastností sady Visual Studio pro pravidla pro různé adresáře

Stránka VC plus plus adresáře je otevřená, která obsahuje vlastnosti pravidel adresářů VC++. Příkladem pravidla jsou zdrojové adresáře, které jsou nastavené na $(VC_SourcePath). Existují pravidla pro zahrnutí adresářů, adresářů knihoven, spustitelných adresářů atd.

Pomocí Editoru vlastností můžete zobrazit hodnoty všech dostupných maker.

Předdefinovaná makra

  • Globální makra:
    Globální makra platí pro všechny položky v konfiguraci projektu. Globální makro má syntaxi $(name). Příkladem globálního makra je $(VCInstallDir), který ukládá kořenový adresář instalace sady Visual Studio. Globální makro odpovídá objektu v nástroji PropertyGroup MSBuild.

  • Makra položek
    Makra položek mají syntaxi %(name). V případě souboru se makro položky vztahuje pouze na tento soubor – můžete například použít %(AdditionalIncludeDirectories) k zadání adresářů zahrnutí, které platí jenom pro konkrétní soubor. Tento druh makra položky odpovídá ItemGroup metadatům v nástroji MSBuild. Pokud se používá v kontextu konfigurace projektu, makro položky se vztahuje na všechny soubory určitého typu. Například konfigurační vlastnost definice preprocesoru C/C++ může pořídit %(PreprocessorDefinitions) makro položky, které platí pro všechny .cpp soubory v projektu. Tento druh makra položky odpovídá ItemDefinitionGroup metadatům v nástroji MSBuild. Další informace naleznete v tématu Definice položek.

Uživatelsky definovaná makra

Makra definovaná uživatelem můžete vytvořit tak, aby se používala jako proměnné v sestaveních projektu. Můžete například vytvořit uživatelem definované makro poskytující hodnotu pro vlastní krok sestavení nebo pro vlastní nástroj sestavení. Uživatelem definované makro je pár název/hodnota. V souboru projektu použijte $(name) notaci pro přístup k hodnotě.

Uživatelem definované makro je uloženo v seznamu vlastností. Pokud projekt ještě neobsahuje seznam vlastností, můžete ho vytvořit pomocí kroků v části Sdílet nebo znovu použít nastavení projektu sady Visual Studio.

Vytvoření uživatelem definovaného makra

  1. Otevřete okno Správce vlastností. (Na řádku nabídek zvolte Zobrazit>správce vlastností nebo zobrazit>jiného správce vlastností systému Windows>.) Otevřete místní nabídku pro seznam vlastností (jeho název končí.user) a pak zvolte Vlastnosti. Otevře se dialogové okno Stránky vlastností pro tento seznam vlastností.

  2. V levém podokně dialogového okna vyberte Uživatelská makra. V pravém podokně zvolte tlačítko Přidat makro a otevřete dialogové okno Přidat uživatelské makro .

  3. V dialogovém okně zadejte název a hodnotu makra. Volitelně zaškrtněte políčko Nastavit toto makro jako proměnnou prostředí v prostředí sestavení.

Editor vlastností

Editor vlastností můžete použít ke změně některých vlastností řetězce a k výběru maker jako hodnot. Editor vlastností otevřete tak, že vyberete vlastnost na stránce vlastností a pak kliknete na šipku dolů na pravé straně. Pokud rozevírací seznam obsahuje <úpravy>, můžete ho zvolit a zobrazit editor vlastností pro tuto vlastnost.

Snímek obrazovky se stránkou vlastností projektu sady Visual Studio pro VC plus adresáře

Otevře se Editor vlastností pro nastavení Zahrnout adresáře. Zobrazuje vyhodnocenou hodnotu pro adresáře include, což je C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\Include. Zobrazuje dvě zděděné hodnoty: $(VC_IncludePath) a $(WindowsSDK_IncludePath). Je zaškrtnuto políčko zdědit z nadřazeného nebo projektového výchozího nastavení.

V Editoru vlastností můžete zvolit tlačítko Makra a zobrazit dostupná makra a jejich aktuální hodnoty. Následující obrázek znázorňuje editor vlastností pro vlastnost Další adresáře zahrnutí po výběru tlačítka Makra . Když je zaškrtnuté políčko Dědit z nadřazeného projektu nebo výchozí hodnoty projektu a přidáte novou hodnotu, připojí se k libovolným hodnotám, které jsou aktuálně zděděné. Pokud zaškrtnutí políčka zrušíte, nahradí nová hodnota zděděné hodnoty. Ve většině případů ponechte políčko zaškrtnuté.

Snímek obrazovky s dialogovým oknem Editor vlastností po výběru tlačítka Makra

Otevře se editor vlastností pro Include Directories. Vyhodnocená hodnota se zobrazí spolu s zděděnými hodnotami. Seznam obsahuje různá makra a jejich hodnoty, například $(CharacterSet), které jsou nastavené na Unicode.

Přidání adresáře include do sady výchozích adresářů

Když do projektu přidáte adresář zahrnutí, není důležité přepsat všechny výchozí adresáře. Správným způsobem, jak přidat adresář, je připojit novou cestu, například "C:\MyNewIncludeDir\", a pak připojit $(IncludePath) makro k hodnotě vlastnosti.

Rychlé procházení a vyhledávání všech vlastností

Stránka vlastností Všechny možnosti (v uzlu Vlastnosti>konfigurace C/C++ v dialogovém okně Stránky vlastností) poskytuje rychlý způsob procházení a vyhledávání vlastností, které jsou k dispozici v aktuálním kontextu. Obsahuje speciální vyhledávací pole s jednoduchou syntaxí umožňující filtrovat výsledky:

Bez předpony:
Prohledávat pouze názvy vlastností (podřetězec bez rozlišení velkých a malých písmen)

'/' nebo '-':
Prohledávat pouze přepínače kompilátoru (předpona nerozlišující velká a malá písmena)

v:
Prohledávat pouze hodnoty (podřetězec bez rozlišení velkých a malých písmen)

Nastavení proměnných prostředí pro sestavení

Kompilátor MSVC (cl.exe) rozpozná určité proměnné prostředí, konkrétně LIB, LIBPATH, PATHa INCLUDE. Při sestavování pomocí integrovaného vývojového prostředí se k nastavení těchto proměnných prostředí používají vlastnosti nastavené na stránce vlastností adresářů VC++. Pokud LIBjsou hodnoty LIBPATHa INCLUDE hodnoty již nastaveny, například vývojářský příkazový řádek, jsou nahrazeny hodnotami odpovídajících vlastností NÁSTROJE MSBuild. Sestavení pak předpendá hodnotu vlastnosti spustitelných adresářů VC++ do PATH. Proměnnou prostředí definovanou uživatelem můžete nastavit vytvořením uživatelem definovaného makra a zaškrtnutím políčka Nastavit toto makro jako proměnnou prostředí v prostředí sestavení.

Nastavení proměnných prostředí pro ladicí relaci

V levém podokně dialogového okna Stránky vlastností projektu rozbalte položku Vlastnosti konfigurace a pak vyberte Ladění.

V pravém podokně upravte nastavení projektu Prostředí nebo Sloučit prostředí a pak zvolte tlačítko OK .

V této části

Sdílení a opakované použití nastavení projektu sady Visual Studio
Jak vytvořit .props soubor s vlastním nastavením sestavení, které je možné sdílet nebo znovu použít.

Dědičnost vlastností projektu
Popisuje pořadí vyhodnocení pro .propsproměnné , , .targets.vcxproj soubory a prostředí v procesu sestavení.

Změna vlastností a cílů beze změny souboru projektu
Jak vytvořit dočasná nastavení sestavení, aniž byste museli upravovat soubor projektu.

Viz také

Projekty sady Visual Studio – C++
.vcxproj a .props struktura souborů
Soubory XML stránky vlastností