Megosztás a következőn keresztül:


Útmutató: Visual C++ projekt létrehozása az MSBuild használatával

Ez az útmutató bemutatja, hogyan használható az MSBuild egy parancssorban Egy Visual Studio C++ projekt létrehozásához. Megtudhatja, hogyan hozhat létre XML-alapú .vcxproj projektfájlt egy Visual C++ konzolalkalmazáshoz. A projekt létrehozása után megtanulhatja, hogyan szabhatja testre a buildelési folyamatot.

Fontos

Ne használja ezt a módszert, ha később szeretné szerkeszteni a projektfájlt a Visual Studio IDE használatával. Ha manuálisan hoz létre .vcxproj fájlt, előfordulhat, hogy a Visual Studio IDE nem tudja szerkeszteni vagy betölteni, különösen akkor, ha a projekt helyettesítő karaktereket használ a projektelemekben. További információ: .vcxproj és .props fájlstruktúra és .vcxproj fájlok és helyettesítő karakterek.

Ez az útmutató a következő feladatokat szemlélteti:

  • A projekt C++ forrásfájljainak létrehozása.
  • Az XML MSBuild projektfájl létrehozása.
  • Az MSBuild használata a projekt létrehozásához.
  • Az MSBuild használata a projekt testreszabásához.

Előfeltételek

Az útmutató elvégzéséhez az alábbi előfeltételek szükségesek:

  • A Visual Studio egy példánya a asztali fejlesztéssel, amelyen telepítve van a C++ számítási feladat.
  • Az MSBuild rendszer általános ismerete.

Jegyzet

Az alacsony szintű buildelési utasítások többsége a .targets és .props fájlokban található, amelyek az alapértelmezett célmappában vannak definiálva, és amelyek a $(VCTargetsPath)tulajdonságban vannak tárolva. Itt talál olyan fájlokat, mint a Microsoft.Cpp.Common.props. Ezen fájlok alapértelmezett elérési útja a Visual Studio 2015-ben és a korábbi verziókban a %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\alatt található.

Jegyzet

Az alacsony szintű buildelési utasítások többsége a .targets és .props fájlokban található, amelyek az alapértelmezett célmappában vannak definiálva, és amelyek a $(VCTargetsPath)tulajdonságban vannak tárolva. Itt talál olyan fájlokat, mint a Microsoft.Cpp.Common.props. Ezeknek a fájloknak az alapértelmezett elérési útja a Visual Studio 2017-ben a %VSINSTALLDIR%Common7\IDE\VC\VCTargets\alatt található. A Visual Studio 2015 és korábbi verziói a %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\alatt tárolták őket.

Jegyzet

Az alacsony szintű buildelési utasítások többsége a .targets és .props fájlokban található, amelyek az alapértelmezett célmappában vannak definiálva, és amelyek a $(VCTargetsPath)tulajdonságban vannak tárolva. Itt talál olyan fájlokat, mint a Microsoft.Cpp.Common.props. Ezeknek a fájloknak az alapértelmezett elérési útja a %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\alatt található. A <version> elérési út eleme a Visual Studio verziójára jellemző. A v160 a Visual Studio 2019-hez kapcsolódik. A Visual Studio 2017 ezeket a fájlokat a %VSINSTALLDIR%Common7\IDE\VC\VCTargets\alatt tárolta. A Visual Studio 2015 és korábbi verziói a %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\alatt tárolták őket.

A C++ forrásfájlok létrehozása

Ebben az útmutatóban egy forrásfájllal és fejlécfájllal rendelkező projektet fog létrehozni. A forrásfájl main.cpp tartalmazza a konzolalkalmazás main függvényét. A fejlécfájl main.h tartalmazza a <iostream> fejlécfájlt tartalmazó kódot. Ezeket a C++ fájlokat a Visual Studióval vagy egy szövegszerkesztővel, például a Visual Studio Code-tal hozhatja létre.

A projekt C++ forrásfájljainak létrehozása

  1. Hozzon létre egy mappát a projekthez.

  2. Hozzon létre egy main.cpp nevű fájlt, és adja hozzá ezt a kódot a fájlhoz:

    // main.cpp : the application source code.
    #include <iostream>
    #include "main.h"
    int main()
    {
       std::cout << "Hello, from MSBuild!\n";
       return 0;
    }
    
  3. Hozzon létre egy main.h nevű fájlt, és adja hozzá ezt a kódot a fájlhoz:

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

Az XML MSBuild projektfájl létrehozása

Az MSBuild projektfájl olyan XML-fájl, amely egy projekt gyökérelemét (<Project>) tartalmazza. A felépíteni kívánt példaprojektben a <Project> elem hét gyermekelemet tartalmaz:

  • Három elemcsoportcímke (<ItemGroup>), amelyek megadják a projektkonfigurációt és a platformot, a forrásfájl nevét és a fejlécfájl nevét.
  • Három importálási címke (<Import>), amelyek meghatározzák a Microsoft Visual C++ beállításainak helyét.
  • A projektbeállításokat meghatározó tulajdonságcsoportcímke (<PropertyGroup>).

Az MSBuild projektfájl létrehozása

  1. Szövegszerkesztővel hozzon létre egy myproject.vcxprojnevű projektfájlt, majd adja hozzá az itt látható gyökér <Project> elemet. (Használja a ToolsVersion="14.0" a Visual Studio 2015 használata esetén, ToolsVersion="15.0" a Visual Studio 2017 vagy a Visual Studio 2019 használata esetén ToolsVersion="16.0".)

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

    Szúrja be az elemeket a következő eljárás lépéseibe a gyökér <Project> címkék között.

  2. Adja hozzá ezt a két <ProjectConfiguration> gyermekelemet egy <ItemGroup> elemhez. A gyermekelem egy 32 bites Windows operációs rendszer hibakeresési és kiadási konfigurációit adja meg:

    <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. Adjon hozzá egy <Import> elemet, amely meghatározza a projekt alapértelmezett C++ beállításainak elérési útját:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
    
  4. Adjon hozzá egy tulajdonságcsoportelemet (<PropertyGroup>), amely két projekttulajdonságot, <ConfigurationType> és <PlatformToolset>határoz meg. (A Visual Studio 2015 használata esetén használja a v140<PlatformToolset> értéket, a Visual Studio 2017 használata esetén v141, a Visual Studio 2019 vagy a Visual Studio 2022 használata esetén v143v142.)

    <PropertyGroup>
      <ConfigurationType>Application</ConfigurationType>
      <PlatformToolset>v143</PlatformToolset>
    </PropertyGroup>
    
  5. Adjon hozzá egy <Import> elemet, amely meghatározza a projekt aktuális C++ beállításainak elérési útját:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    
  6. Adjon hozzá egy <ClCompile> gyermekelemet egy <ItemGroup> elemhez. A gyermekelem a lefordítandó C/C++ forrásfájl nevét adja meg:

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

    Jegyzet

    <ClCompile> egy build-cél, és az alapértelmezett célok mappájában van definiálva.

  7. Adjon hozzá egy <ClInclude> gyermekelemet egy <ItemGroup> elemhez. A gyermekelem a C/C++ forrásfájl fejlécfájljának nevét adja meg:

    <ItemGroup>
      <ClInclude Include="main.h" />
    </ItemGroup>
    
  8. Adjon hozzá egy <Import> elemet, amely meghatározza a projekt célját meghatározó fájl elérési útját:

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

Projektfájl befejezése

Ez a kód az előző eljárásban létrehozott teljes projektfájlt jeleníti meg. (A Visual Studio 2017 ToolsVersion="15.0" vagy a Visual Studio 2015 ToolsVersion="14.0" használata.)

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

Az MSBuild használata a projekt létrehozásához

Adja meg ezt a parancsot a parancssorban a konzolalkalmazás létrehozásához:

msbuild myproject.vcxproj /p:configuration=debug

Az MSBuild létrehoz egy mappát a kimeneti fájlokhoz, majd lefordítja és összekapcsolja a projektet a Myproject.exe program létrehozásához. A létrehozási folyamat befejezése után ezzel a paranccsal futtassa az alkalmazást a hibakeresési mappából:

myproject

Az alkalmazásnak a konzolablakban ezt kell megjelenítenie: "Hello, from MSBuild!"

A projekt testreszabása

Az MSBuild lehetővé teszi előre meghatározott buildcélok végrehajtását, felhasználó által definiált tulajdonságok alkalmazását, valamint egyéni eszközök, események és buildelési lépések használatát. Ez a szakasz a következő feladatokat mutatja be:

  • Az MSBuild használata buildcélokkal.
  • Az MSBuild használata a buildtulajdonságokkal.
  • Az MSBuild használata a 64 bites fordítóval és az eszközökkel.
  • Az MSBuild használata különböző eszközkészletekkel.
  • MSBuild testreszabások hozzáadása.

Az MSBuild használata építési célokkal

A buildcél előre definiált vagy felhasználó által definiált parancsok nevesített készlete, amelyek a buildelés során végrehajthatók. A buildcél megadásához használja a cél parancssori (/t) beállítását. A myproject példaprojekt esetében az előre definiált clean cél törli a hibakeresési mappában lévő összes fájlt, és létrehoz egy új naplófájlt.

A parancssorba írja be ezt a parancsot a myprojecttisztításához:

msbuild myproject.vcxproj /t:clean

Az MSBuild használata buildtulajdonságokkal

A tulajdonság parancssori beállításával (/p) felülbírálhat egy tulajdonságot a projekt buildfájljában. A myproject példaprojektben a kiadási vagy hibakeresési buildkonfigurációt a Configuration tulajdonság határozza meg. A beépített alkalmazás futtatásához használt operációs rendszert a Platform tulajdonság határozza meg.

A parancssorba írja be ezt a parancsot a myproject alkalmazás hibakeresési buildjének létrehozásához, amely 32 bites Windows rendszeren fut:

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

Tegyük fel, hogy a myproject példaprojekt a 64 bites Windows konfigurációját, valamint egy másik konfigurációt is definiál egy myplatformnevű egyéni operációs rendszerhez.

A parancssorba írja be ezt a parancsot egy 64 bites Windows rendszeren futó kiadási build létrehozásához:

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

A parancssorban írja be ezt a parancsot egy kiadási verzió létrehozásához myplatform:

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

Az MSBuild használata a 64 bites fordítóval és eszközökkel

Ha a Visual Studio 64 bites Windows rendszeren van telepítve, a 64 bites x64 natív és kereszteszközök alapértelmezés szerint telepítve vannak. A PreferredToolArchitecture tulajdonság beállításával konfigurálhatja az MSBuildet úgy, hogy a 64 bites fordítót és eszközöket használja az alkalmazás létrehozásához. Ez a tulajdonság nem befolyásolja a projektkonfigurációt vagy a platform tulajdonságait. Alapértelmezés szerint a rendszer az eszközök 32 bites verzióját használja. A fordító és az eszközök 64 bites verziójának megadásához adja hozzá ezt a tulajdonságcsoportelemet a Myproject.vcxproj projektfájlhoz a Microsoft.Cpp.default.props fájl <Import /> elem után:

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

Írja be a következő parancsot a parancssorba az alkalmazása 64 bites eszközökkel történő fordításához:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64

Az MSBuild használata egy másik eszközkészlettel

Ha telepítve vannak a Visual C++ más verzióihoz szükséges eszközkészletek és kódtárak, az MSBuild az aktuális Visual C++ vagy a többi telepített verzióhoz is létrehozhat alkalmazásokat. Ha például telepítette a Visual Studio 2012-t, a Windows XP Visual C++ 11.0 eszközkészletének megadásához adja hozzá ezt a tulajdonságcsoportelemet a Myproject.vcxproj projektfájlhoz a Microsoft.Cpp.props fájl <Import /> elem után:

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

Ha újra szeretné építeni a projektet a Visual C++ 11.0 Windows XP-eszközkészlettel, írja be a következő parancsot:

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

MSBuild testreszabások hozzáadása

Az MSBuild különböző módszereket kínál a buildelési folyamat testreszabására. Ezek a cikkek bemutatják, hogyan adhat hozzá egyéni buildelési lépéseket, eszközöket és eseményeket az MSBuild projekthez:

Lásd még: