Ú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
Hozzon létre egy mappát a projekthez.
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; }
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
Szövegszerkesztővel hozzon létre egy
myproject.vcxproj
nevű projektfájlt, majd adja hozzá az itt látható gyökér<Project>
elemet. (Használja aToolsVersion="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énToolsVersion="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.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>
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" />
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 av140
<PlatformToolset>
értéket, a Visual Studio 2017 használata eseténv141
, a Visual Studio 2019 vagy a Visual Studio 2022 használata eseténv143
v142
.)<PropertyGroup> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v143</PlatformToolset> </PropertyGroup>
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" />
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.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>
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 myproject
tisztí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 myplatform
nevű 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:
- Útmutató: Egyéni buildelési lépés hozzáadása az MSBuild-projektekhez
- Útmutató: Egyéni buildeszközök hozzáadása az MSBuild-projektekhez
- Útmutató: Buildesemények használata az MSBuild-projektekben