İzlenecek yol: Visual C++ Projesi Oluşturmak için MSBuild Kullanma
Bu kılavuzda, Visual Studio C++ projesi oluşturmak için komut isteminde MSBuild'in nasıl kullanılacağı gösterilmektedir. Visual C++ konsol uygulaması için XML tabanlı .vcxproj
proje dosyası oluşturmayı öğreneceksiniz. Projeyi derledikten sonra derleme işlemini özelleştirmeyi öğreneceksiniz.
Önemli
Proje dosyasını daha sonra Visual Studio IDE kullanarak düzenlemek istiyorsanız bu yaklaşımı kullanmayın. El ile bir .vcxproj
dosya oluşturursanız, özellikle proje proje öğelerinde joker karakterler kullanıyorsa Visual Studio IDE dosyayı düzenleyemeyebilir veya yükleyemeyebilir. Daha fazla bilgi için bkz.vcxproj
. ve .props
dosya yapısı ile.vcxproj
dosyalar ve joker karakterler.
Bu kılavuzda şu görevler gösterilmektedir:
- Projeniz için C++ kaynak dosyalarını oluşturma.
- XML MSBuild proje dosyası oluşturuluyor.
- Projenizi oluşturmak için MSBuild kullanma.
- Projenizi özelleştirmek için MSBuild kullanma.
Önkoşullar
Bu kılavuzu tamamlamak için bu önkoşullara ihtiyacınız vardır:
- C++ iş yükünün yüklü olduğu Masaüstü geliştirmesi ile Visual Studio'nun bir kopyası.
- MSBuild sistemi hakkında genel bir anlayış.
Not
Alt düzey derleme yönergelerinin çoğu, özelliğinde .targets
$(VCTargetsPath)
depolanan varsayılan hedefler klasörü altında tanımlanan ve .props
dosyalarında yer alır. gibi Microsoft.Cpp.Common.props
dosyaları burada bulabilirsiniz. Visual Studio 2015 ve önceki sürümlerde bu dosyalar için varsayılan yol altındadır %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\
.
Not
Alt düzey derleme yönergelerinin çoğu, özelliğinde .targets
$(VCTargetsPath)
depolanan varsayılan hedefler klasörü altında tanımlanan ve .props
dosyalarında yer alır. gibi Microsoft.Cpp.Common.props
dosyaları burada bulabilirsiniz. Visual Studio 2017'de bu dosyaların varsayılan yolu altındadır %VSINSTALLDIR%Common7\IDE\VC\VCTargets\
. Visual Studio 2015 ve önceki sürümleri altında %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\
depoladı.
Not
Alt düzey derleme yönergelerinin çoğu, özelliğinde .targets
$(VCTargetsPath)
depolanan varsayılan hedefler klasörü altında tanımlanan ve .props
dosyalarında yer alır. gibi Microsoft.Cpp.Common.props
dosyaları burada bulabilirsiniz. Bu dosyaların varsayılan yolu altındadır %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\
. <version>
path öğesi Visual Studio sürümüne özgüdür. v160
Visual Studio 2019 içindir. Visual Studio 2017 bu dosyaları altında %VSINSTALLDIR%Common7\IDE\VC\VCTargets\
depoladı. Visual Studio 2015 ve önceki sürümleri altında %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\
depoladı.
C++ kaynak dosyalarını oluşturma
Bu kılavuzda, kaynak dosyası ve üst bilgi dosyası içeren bir proje oluşturacaksınız. Kaynak dosya main.cpp
, konsol uygulamasının işlevini içerir main
. Üst bilgi dosyası main.h
, üst bilgi dosyasını içeren <iostream>
kodu içerir. Visual Studio'yu veya Visual Studio Code gibi bir metin düzenleyicisini kullanarak bu C++ dosyalarını oluşturabilirsiniz.
Projeniz için C++ kaynak dosyalarını oluşturmak için
Projeniz için bir klasör oluşturun.
adlı
main.cpp
bir dosya oluşturun ve bu kodu dosyaya ekleyin:// main.cpp : the application source code. #include <iostream> #include "main.h" int main() { std::cout << "Hello, from MSBuild!\n"; return 0; }
adlı
main.h
bir dosya oluşturun ve bu kodu dosyaya ekleyin:// main.h: the application header code. /* Additional source code to include. */
XML MSBuild Proje Dosyasını Oluşturma
MSBuild proje dosyası, proje kök öğesi (<Project>
) içeren bir XML dosyasıdır. Oluşturabileceğiniz örnek projede <Project>
, öğesi yedi alt öğe içerir:
- Proje yapılandırması ve platformu, kaynak dosya adı ve üst bilgi dosyası adını belirten üç öğe grubu etiketi (
<ItemGroup>
). - Microsoft Visual C++ ayarlarının konumunu belirten üç içeri aktarma etiketi (
<Import>
). - Proje ayarlarını belirten özellik grubu etiketi (
<PropertyGroup>
).
MSBuild proje dosyasını oluşturmak için
adlı
myproject.vcxproj
bir proje dosyası oluşturmak için bir metin düzenleyicisi kullanın ve burada gösterilen kök<Project>
öğeyi ekleyin. (Visual Studio 2015 kullanıyorsanız,ToolsVersion="15.0"
Visual Studio 2017 kullanıyorsanız veyaToolsVersion="16.0"
Visual Studio 2019 kullanıyorsanız kullanınToolsVersion="14.0"
.)<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> </Project>
Sonraki yordam adımlarındaki öğeleri kök
<Project>
etiketler arasına ekleyin.Bu iki
<ProjectConfiguration>
alt öğeyi bir<ItemGroup>
öğeye ekleyin. Alt öğe, 32 bit Windows işletim sistemi için hata ayıklama ve sürüm yapılandırmalarını belirtir:<ItemGroup> <ProjectConfiguration Include="Debug|Win32"> <Configuration>Debug</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> <ProjectConfiguration Include="Release|Win32"> <Configuration>Release</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> </ItemGroup>
Bu proje için varsayılan C++ ayarlarının yolunu belirten bir
<Import>
öğe ekleyin:<Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
ve
<PlatformToolset>
olmak üzere iki proje özelliğini<ConfigurationType>
belirten bir özellik grubu öğesi (<PropertyGroup>
) ekleyin. (Visual Studio 2015 kullanıyorsanız,v141
Visual Studio 2017 kullanıyorsanız veyav142
Visual Studio 2019 kullanıyorsanız değer olarak<PlatformToolset>
kullanınv140
.)<PropertyGroup> <ConfigurationType>Application</ConfigurationType> <PlatformToolset>v142</PlatformToolset> </PropertyGroup>
Bu proje için geçerli C++ ayarlarının yolunu belirten bir
<Import>
öğe ekleyin:<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
Bir
<ClCompile>
öğeye<ItemGroup>
bir alt öğe ekleyin. Alt öğe derlenecek C/C++ kaynak dosyasının adını belirtir:<ItemGroup> <ClCompile Include="main.cpp" /> </ItemGroup>
Not
<ClCompile>
bir derleme hedefidir ve varsayılan hedefler klasöründe tanımlanır.Bir
<ClInclude>
öğeye<ItemGroup>
bir alt öğe ekleyin. Alt öğe, C/C++ kaynak dosyasının üst bilgi dosyasının adını belirtir:<ItemGroup> <ClInclude Include="main.h" /> </ItemGroup>
Bu proje için hedefi tanımlayan dosyanın yolunu belirten bir
<Import>
öğe ekleyin:<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
Proje Dosyasını Tamamla
Bu kod, önceki yordamda oluşturduğunuz proje dosyasının tamamını gösterir. (Visual Studio 2017 veya ToolsVersion="14.0"
Visual Studio 2015 için kullanınToolsVersion="15.0"
.)
<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>
Projenizi Derlemek için MSBuild Kullanma
Konsol uygulamanızı oluşturmak için komut istemine şu komutu girin:
msbuild myproject.vcxproj /p:configuration=debug
MSBuild, çıkış dosyaları için bir klasör oluşturur ve ardından programı oluşturmak Myproject.exe
için projenizi derleyip bağlar. Derleme işlemi tamamlandıktan sonra, uygulamayı hata ayıklama klasöründen çalıştırmak için şu komutu kullanın:
myproject
Uygulamanın konsol penceresinde "Hello, from MSBuild!" ifadesi görüntülenmelidir.
Projenizi Özelleştirme
MSBuild önceden tanımlanmış derleme hedeflerini yürütmenize, kullanıcı tanımlı özellikler uygulamanıza ve özel araçlar, olaylar ve derleme adımları kullanmanıza olanak tanır. Bu bölümde şu görevler gösterilmektedir:
- Derleme hedefleriyle MSBuild kullanma.
- Derleme özellikleriyle MSBuild kullanma.
- MSBuild'i 64 bit derleyici ve araçlarla kullanma.
- MSBuild'i farklı araç kümeleriyle kullanma.
- MSBuild özelleştirmeleri ekleniyor.
Derleme Hedefleri ile MSBuild Kullanma
Derleme hedefi, derleme sırasında yürütülebilecek önceden tanımlanmış veya kullanıcı tanımlı komutların adlandırılmış bir kümesidir. Derleme hedefi belirtmek için hedef komut satırı seçeneğini (/t
) kullanın. Örnek proje için myproject
, önceden tanımlanmış clean
hedef hata ayıklama klasöründeki tüm dosyaları siler ve yeni bir günlük dosyası oluşturur.
Komut isteminde, temizlemek myproject
için şu komutu girin:
msbuild myproject.vcxproj /t:clean
DERLEME Özellikleri ile MSBuild Kullanma
Özellik komut satırı seçeneği (/p
), proje derleme dosyanızdaki bir özelliği geçersiz kılmanıza olanak tanır. Örnek projede myproject
, sürüm veya hata ayıklama derleme yapılandırması özelliği tarafından Configuration
belirtilir. Yerleşik uygulamayı çalıştırmak için kullanacağınız işletim sistemi özelliği tarafından Platform
belirtilir.
Komut isteminde, uygulamanın 32 bit Windows üzerinde çalıştırılacak hata ayıklama derlemesini myproject
oluşturmak için şu komutu girin:
msbuild myproject.vcxproj /p:configuration=debug /p:platform=win32
Örnek projenin 64 bit Windows için bir yapılandırma ve adlı myplatform
özel bir işletim sistemi için başka bir yapılandırma tanımladığını myproject
varsayalım.
Komut istemine şu komutu girerek 64 bit Windows üzerinde çalışan bir yayın derlemesi oluşturun:
msbuild myproject.vcxproj /p:configuration=release /p:platform=x64
Komut isteminde, için bir yayın derlemesi oluşturmak üzere myplatform
bu komutu girin:
msbuild myproject.vcxproj /p:configuration=release /p:platform=myplatform
MSBuild'i 64 bit Derleyici ve Araçlarla Kullanma
Visual Studio'yu 64 bit Windows'a yüklediyseniz, 64 bit x64 yerel ve çapraz araçlar varsayılan olarak yüklenir. MSBuild'i, özelliğini ayarlayarak uygulamanızı derlemek için 64 bit derleyici ve araçları kullanacak şekilde PreferredToolArchitecture
yapılandırabilirsiniz. Bu özellik proje yapılandırmasını veya platform özelliklerini etkilemez. Varsayılan olarak, araçların 32 bit sürümü kullanılır. Derleyicinin ve araçların 64 bit sürümünü belirtmek için bu özellik grubu öğesini dosya <Import />
öğesinden Myproject.vcxproj
Microsoft.Cpp.default.props
sonra proje dosyasına ekleyin:
<PropertyGroup>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
Komut isteminde, uygulamanızı derlemek için 64 bit araçları kullanmak için şu komutu girin:
msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64
MSBuild'i farklı bir araç takımıyla kullanma
Visual C++'ın diğer sürümleri için araç kümeleri ve kitaplıklar yüklüyse, MSBuild geçerli Visual C++ sürümü veya diğer yüklü sürümler için uygulamalar oluşturabilir. Örneğin, Visual Studio 2012'yi yüklediyseniz, Windows XP için Visual C++ 11.0 araç takımını belirtmek için bu özellik grubu öğesini dosya <Import />
öğesinden Myproject.vcxproj
Microsoft.Cpp.props
sonra proje dosyasına ekleyin:
<PropertyGroup>
<PlatformToolset>v110_xp</PlatformToolset>
</PropertyGroup>
Visual C++ 11.0 Windows XP araç takımıyla projenizi yeniden derlemek için şu komutu girin:
msbuild myproject.vcxproj /p:PlatformToolset=v110_xp /t:rebuild
MSBuild özelleştirmeleri ekleme
MSBuild, derleme işleminizi özelleştirmek için çeşitli yollar sağlar. Bu makalelerde, MSBuild projenize özel derleme adımları, araçları ve olayları ekleme adımları gösterilmektedir:
- Nasıl Yapılır: MSBuild Projelerine Özel Derleme Adımı Ekleme
- Nasıl Yapılır: MSBuild Projelerine Özel Derleme Araçları Ekleme
- Nasıl Yapılır: MSBuild Projelerinde Derleme Olaylarını Kullanma