Návod: Vytvoření projektu jazyka Visual C++ pomocí nástroje MSBuild

Tento názorný postup ukazuje, jak pomocí nástroje MSBuild na příkazovém řádku sestavit projekt Visual Studio C++. Dozvíte se, jak vytvořit soubor projektu založený na .vcxproj jazyce XML pro konzolovou aplikaci Visual C++. Po sestavení projektu se dozvíte, jak přizpůsobit proces sestavení.

Důležité

Tento přístup nepoužívejte, pokud chcete soubor projektu později upravit pomocí integrovaného vývojového prostředí sady Visual Studio. Pokud vytváříte .vcxproj soubor ručně, integrované vývojové prostředí sady Visual Studio nemusí být schopné ho upravovat ani načíst, zejména pokud projekt používá v položkách projektu zástupné cardy. Další informace najdete v tématu .vcxproj .props a struktuře souborů a .vcxproj souborech a zástupných cardech.

Tento názorný postup znázorňuje tyto úlohy:

  • Vytvoření zdrojových souborů C++ pro váš projekt
  • Vytvoření souboru projektu XML MSBuild
  • Pomocí nástroje MSBuild sestavte projekt.
  • Použití nástroje MSBuild k přizpůsobení projektu.

Požadavky

K dokončení tohoto návodu potřebujete tyto požadavky:

  • Kopie sady Visual Studio s nainstalovaným vývojem desktopových aplikací s nainstalovanou úlohou C++ .
  • Obecné znalosti systému MSBuild.

Poznámka:

Většina instrukcí sestavení nízké úrovně jsou obsaženy v souborech .targets .props definovaných ve výchozí složce cílů uložené ve vlastnosti $(VCTargetsPath). Tady najdete soubory, jako Microsoft.Cpp.Common.propsje . Výchozí cesta k těmto souborům v sadě Visual Studio 2015 a starších verzích je v části %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\.

Poznámka:

Většina instrukcí sestavení nízké úrovně jsou obsaženy v souborech .targets .props definovaných ve výchozí složce cílů uložené ve vlastnosti $(VCTargetsPath). Tady najdete soubory, jako Microsoft.Cpp.Common.propsje . Výchozí cesta pro tyto soubory v sadě Visual Studio 2017 je v části %VSINSTALLDIR%Common7\IDE\VC\VCTargets\. Visual Studio 2015 a starší verze je uložily v části %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\.

Poznámka:

Většina instrukcí sestavení nízké úrovně jsou obsaženy v souborech .targets .props definovaných ve výchozí složce cílů uložené ve vlastnosti $(VCTargetsPath). Tady najdete soubory, jako Microsoft.Cpp.Common.propsje . Výchozí cesta pro tyto soubory je v části %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\. Element <version> path je specifický pro verzi sady Visual Studio. v160 Je to pro Visual Studio 2019. Visual Studio 2017 tyto soubory uložil v části %VSINSTALLDIR%Common7\IDE\VC\VCTargets\. Visual Studio 2015 a starší verze je uložily v části %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\.

Vytvoření zdrojových souborů C++

V tomto názorném postupu vytvoříte projekt se zdrojovým souborem a hlavičkovým souborem. Zdrojový soubor main.cpp obsahuje main funkci konzolové aplikace. Soubor main.h záhlaví obsahuje kód, který bude obsahovat <iostream> soubor záhlaví. Tyto soubory C++ můžete vytvořit pomocí sady Visual Studio nebo textového editoru, jako je Visual Studio Code.

Vytvoření zdrojových souborů C++ pro váš projekt

  1. Vytvořte složku pro projekt.

  2. Vytvořte soubor s názvem main.cpp a přidejte tento kód do souboru:

    // main.cpp : the application source code.
    #include <iostream>
    #include "main.h"
    int main()
    {
       std::cout << "Hello, from MSBuild!\n";
       return 0;
    }
    
  3. Vytvořte soubor s názvem main.h a přidejte tento kód do souboru:

    // main.h: the application header code.
    /* Additional source code to include. */
    

Vytvoření souboru projektu XML MSBuild

Soubor projektu MSBuild je soubor XML, který obsahuje kořenový element projektu (<Project>). V ukázkovém projektu, který vytvoříte, <Project> obsahuje element sedm podřízených prvků:

  • Tři značky skupiny položek (<ItemGroup>), které určují konfiguraci projektu a platformu, název zdrojového souboru a název souboru hlaviček.
  • Tři značky importu (<Import>), které určují umístění nastavení jazyka Microsoft Visual C++.
  • Značka skupiny vlastností (<PropertyGroup>), která určuje nastavení projektu.

Vytvoření souboru projektu MSBuild

  1. Pomocí textového editoru vytvořte soubor projektu s názvem myproject.vcxproja pak přidejte kořenový <Project> prvek zobrazený zde. (Pokud ToolsVersion="14.0" používáte Visual Studio 2015, ToolsVersion="15.0" pokud používáte Visual Studio 2017 nebo ToolsVersion="16.0" používáte Visual Studio 2019.)

    <Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    </Project>
    

    Vložte prvky do dalších kroků postupu mezi kořenové <Project> značky.

  2. Přidejte do elementu <ItemGroup> tyto dva <ProjectConfiguration> podřízené prvky. Podřízený element určuje konfigurace ladění a vydávání pro 32bitový operační systém Windows:

    <ItemGroup>
      <ProjectConfiguration Include="Debug|Win32">
        <Configuration>Debug</Configuration>
        <Platform>Win32</Platform>
      </ProjectConfiguration>
      <ProjectConfiguration Include="Release|Win32">
        <Configuration>Release</Configuration>
        <Platform>Win32</Platform>
      </ProjectConfiguration>
    </ItemGroup>
    
  3. <Import> Přidejte element, který určuje cestu výchozího nastavení jazyka C++pro tento projekt:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
    
  4. Přidejte element skupiny vlastností (<PropertyGroup>), který určuje dvě vlastnosti <ConfigurationType> projektu a <PlatformToolset>. (Jako hodnotu použijte v140 Visual Studio 2015, v141 pokud používáte Visual Studio 2017 nebo v142 pokud používáte Visual Studio 2019<PlatformToolset>.)

    <PropertyGroup>
      <ConfigurationType>Application</ConfigurationType>
      <PlatformToolset>v142</PlatformToolset>
    </PropertyGroup>
    
  5. <Import> Přidejte element, který určuje cestu aktuálního nastavení jazyka C++pro tento projekt:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    
  6. <ClCompile> Přidejte podřízený prvek do elementu<ItemGroup>. Podřízený element určuje název zdrojového souboru C/C++, který se má zkompilovat:

    <ItemGroup>
      <ClCompile Include="main.cpp" />
    </ItemGroup>
    

    Poznámka:

    <ClCompile>je cíl sestavení a je definován ve výchozí složce cílů.

  7. <ClInclude> Přidejte podřízený prvek do elementu<ItemGroup>. Podřízený element určuje název hlavičkového souboru zdrojového souboru C/C++:

    <ItemGroup>
      <ClInclude Include="main.h" />
    </ItemGroup>
    
  8. <Import> Přidejte prvek, který určuje cestu k souboru, který definuje cíl pro tento projekt:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
    

Dokončení souboru projektu

Tento kód ukazuje úplný soubor projektu, který jste vytvořili v předchozím postupu. (Používá se ToolsVersion="15.0" pro Visual Studio 2017 nebo ToolsVersion="14.0" pro Visual Studio 2015.)

<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
  <PropertyGroup>
    <ConfigurationType>Application</ConfigurationType>
    <PlatformToolset>v142</PlatformToolset>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ItemGroup>
    <ClCompile Include="main.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="main.h" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
</Project>

Sestavení projektu pomocí nástroje MSBuild

Zadáním tohoto příkazu na příkazovém řádku sestavte konzolovou aplikaci:

msbuild myproject.vcxproj /p:configuration=debug

NÁSTROJ MSBuild vytvoří složku pro výstupní soubory a pak zkompiluje a pro propojení projektu vygeneruje Myproject.exe program. Po dokončení procesu sestavení pomocí tohoto příkazu spusťte aplikaci ze složky ladění:

myproject

Aplikace by měla v okně konzoly zobrazit "Hello, from MSBuild!" (Hello, from MSBuild).

Přizpůsobení projektu

Nástroj MSBuild umožňuje spouštět předdefinované cíle sestavení, používat uživatelem definované vlastnosti a používat vlastní nástroje, události a kroky sestavení. Tato část ukazuje tyto úlohy:

  • Použití nástroje MSBuild s cíli sestavení
  • Použití nástroje MSBuild s vlastnostmi sestavení
  • Použití nástroje MSBuild s 64bitovým kompilátorem a nástroji.
  • Použití nástroje MSBuild s různými sadami nástrojů
  • Přidání vlastních nastavení nástroje MSBuild

Použití nástroje MSBuild s cíli sestavení

Cíl sestavení je pojmenovaná sada předdefinovaných nebo uživatelem definovaných příkazů, které je možné spustit během sestavení. Pomocí možnosti cílového příkazového řádku (/t) zadejte cíl sestavení. myproject Například předdefinovaný clean cíl odstraní všechny soubory ve složce ladění a vytvoří nový soubor protokolu.

Na příkazovém řádku zadejte tento příkaz, který chcete vyčistit myproject:

msbuild myproject.vcxproj /t:clean

Použití nástroje MSBuild s vlastnostmi sestavení

Možnost příkazového řádku vlastnosti (/p) umožňuje přepsat vlastnost v souboru sestavení projektu. V ukázkovém myproject projektu je vlastnost určena Configuration konfigurací sestavení vydané verze nebo ladění. Vlastnost určuje Platform operační systém, který použijete ke spuštění sestavené aplikace.

Na příkazovém řádku zadejte tento příkaz, který vytvoří ladicí build myproject aplikace, který se spustí v 32bitovém systému Windows:

msbuild myproject.vcxproj /p:configuration=debug /p:platform=win32

Předpokládejme, že myproject ukázkový projekt také definuje konfiguraci pro 64bitovou verzi Windows a jinou konfiguraci pro vlastní operační systém s názvem myplatform.

Na příkazovém řádku zadejte tento příkaz pro vytvoření buildu vydané verze, který běží v 64bitovém systému Windows:

msbuild myproject.vcxproj /p:configuration=release /p:platform=x64

Na příkazovém řádku zadejte tento příkaz pro vytvoření sestavení vydané verze pro myplatform:

msbuild myproject.vcxproj /p:configuration=release /p:platform=myplatform

Použití nástroje MSBuild s 64bitovým kompilátorem a nástroji

Pokud jste nainstalovali Visual Studio v 64bitovém Systému Windows, ve výchozím nastavení se nainstalují 64bitové nativní nástroje x64 a nástroje pro různé nástroje. Nástroj MSBuild můžete nakonfigurovat tak, aby používal 64bitový kompilátor a nástroje k sestavení aplikace nastavením PreferredToolArchitecture vlastnosti. Tato vlastnost nemá vliv na konfiguraci projektu ani vlastnosti platformy. Ve výchozím nastavení se používá 32bitová verze nástrojů. Chcete-li zadat 64bitovou verzi kompilátoru a nástrojů, přidejte tento element skupiny vlastností do Myproject.vcxproj souboru projektu za Microsoft.Cpp.default.props element file <Import /> :

<PropertyGroup>
    <PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>

Na příkazovém řádku zadejte tento příkaz, který použije 64bitové nástroje k sestavení aplikace:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64

Použití nástroje MSBuild s jinou sadou nástrojů

Pokud máte nainstalované sady nástrojů a knihovny pro jiné verze Visual C++, nástroj MSBuild může vytvářet aplikace pro aktuální verzi visual C++ nebo pro jiné nainstalované verze. Pokud jste například nainstalovali Visual Studio 2012, chcete-li zadat sadu nástrojů Visual C++ 11.0 pro Systém Windows XP, přidejte tento element skupiny vlastností do Myproject.vcxproj souboru projektu za Microsoft.Cpp.props element souboru <Import /> :

<PropertyGroup>
    <PlatformToolset>v110_xp</PlatformToolset>
</PropertyGroup>

Pokud chcete projekt znovu sestavit pomocí sady nástrojů Visual C++ 11.0 Windows XP, zadejte tento příkaz:

msbuild myproject.vcxproj /p:PlatformToolset=v110_xp /t:rebuild

Přidání vlastních nastavení nástroje MSBuild

Nástroj MSBuild nabízí různé způsoby přizpůsobení procesu sestavení. V těchto článcích se dozvíte, jak do projektu MSBuild přidat vlastní kroky sestavení, nástroje a události:

Viz také