Aracılığıyla paylaş


İ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 .vcxproj ve .props dosya yapısı ile .vcxproj dosyalar ve joker karakterler konularına bakın.

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çin Masaüstü geliştirme iş yükü yüklü olan Visual Studio'nun bir kopyası.
  • MSBuild sistemi hakkında genel bir anlayış.

Not

Alt düzey derleme yönergelerinin çoğu, .targets ve .props dosyalarında yer alır ve bunlar, $(VCTargetsPath) özelliğinde depolanan varsayılan hedefler klasörünün altında tanımlanmıştır. gibi Microsoft.Cpp.Common.propsdosyaları 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, .targets ve .props dosyalarında yer alır ve bunlar, $(VCTargetsPath) özelliğinde depolanan varsayılan hedefler klasörünün altında tanımlanmıştır. gibi Microsoft.Cpp.Common.propsdosyaları 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ümler %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\ altında depoladı.

Not

Alt düzey derleme yönergelerinin çoğu, .targets ve .props dosyalarında yer alır ve bunlar, $(VCTargetsPath) özelliğinde depolanan varsayılan hedefler klasörünün altında tanımlanmıştır. gibi Microsoft.Cpp.Common.propsdosyaları burada bulabilirsiniz. Bu dosyaların varsayılan yolu %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\ altındadır. <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ümler %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\ altında 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 . Header dosyası main.h, <iostream> dosyasını dahil etmek için kod 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

  1. Projeniz için bir klasör oluşturun.

  2. 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;
    }
    
  3. 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

  1. adlı myproject.vcxprojbir 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="14.0" Visual Studio 2017 kullanıyorsanız, ToolsVersion="15.0" Visual Studio 2019 kullanıyorsanız veya ToolsVersion="16.0" Visual Studio 2022 kullanıyorsanız kullanınToolsVersion="17.0".)

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

    Sonraki yordam adımlarındaki öğeleri kök <Project> etiketler arasına ekleyin.

  2. 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>
    
  3. Bu proje için varsayılan C++ ayarlarının yolunu belirten bir <Import> öğe ekleyin:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
    
  4. Bir özellik grubu öğesi (<PropertyGroup>) ekleyin; bu, <ConfigurationType> ve <PlatformToolset> olmak üzere iki proje özelliğini belirtir. (Visual Studio 2015 kullanıyorsanız v140 değeri olarak <PlatformToolset> kullanın, v141 Visual Studio 2017 kullanıyorsanız v142 Visual Studio 2019 kullanıyorsanız veya Visual Studio 2022 kullanıyorsanız v143.)

    <PropertyGroup>
      <ConfigurationType>Application</ConfigurationType>
      <PlatformToolset>v143</PlatformToolset>
    </PropertyGroup>
    
  5. Bu proje için geçerli C++ ayarlarının yolunu belirten bir <Import> öğe ekleyin:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    
  6. 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.

  7. 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>
    
  8. 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 için ToolsVersion=16.0 for Visual Studio 2019, ToolsVersion="15.0", Visual Studio 2015 için ToolsVersion="14.0" kullanın.)

<Project DefaultTargets="Build" ToolsVersion="17.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:

  • MSBuild'i derleme hedefleriyle 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.

Yapı 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 myprojectiçin şu komutu girin:

msbuild myproject.vcxproj /t:clean

Derleme Özellikleri ile MSBuild Kullanımı

Ö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, sürüm veya hata ayıklama derleme yapılandırması myproject özelliği tarafından belirlenir. Derlenmiş uygulamayı çalıştırmak için kullanacağınız işletim sistemi Platform özelliğiyle 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ı myprojectözel bir işletim sistemi için başka bir yapılandırma tanımladığını myplatform 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, myplatform için bir yayın derlemesi oluşturmak üzere 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, PreferredToolArchitecture özelliğini ayarlayarak 64 bit derleyici ve araçları kullanacak şekilde uygulamanızı derlemek için 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 Myproject.vcxproj öğesinden Microsoft.Cpp.default.props<Import /> 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 Myproject.vcxproj öğesinden Microsoft.Cpp.props<Import /> 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:

Ayrıca bkz.