Share via


İ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.vcxprojdosyalar 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ış.

Dekont

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

Dekont

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.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ümleri altında %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\depoladı.

Dekont

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.propsdosyaları 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

  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="15.0" Visual Studio 2017 kullanıyorsanız veya ToolsVersion="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.

  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. 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 veya v142 Visual Studio 2019 kullanıyorsanız değer olarak <PlatformToolset> kullanınv140.)

    <PropertyGroup>
      <ConfigurationType>Application</ConfigurationType>
      <PlatformToolset>v142</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>
    

    Dekont

    <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 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 myprojectiç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 myplatformbu 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.vcxprojMicrosoft.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.vcxprojMicrosoft.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:

Ayrıca bkz.