Bagikan melalui


Panduan: Menggunakan MSBuild untuk Membuat Proyek Visual Studio C++

Panduan ini menunjukkan cara menggunakan MSBuild dalam prompt perintah untuk membangun proyek Visual Studio C++. Anda akan mempelajari cara membuat file proyek berbasis .vcxproj XML untuk aplikasi konsol C++. Setelah membangun proyek, Anda akan mempelajari cara menyesuaikan proses build.

Penting

Jangan gunakan pendekatan ini jika Anda ingin mengedit file proyek nanti dengan menggunakan Visual Studio IDE. Jika Anda membuat .vcxproj file secara manual, IDE Visual Studio mungkin tidak dapat mengedit atau memuatnya, terutama jika proyek menggunakan kartubebas dalam item proyek. Untuk informasi selengkapnya, lihat .vcxproj dan .props.

Panduan ini mengilustrasikan tugas-tugas ini:

  • Membuat file sumber C++ untuk proyek Anda.
  • Membuat file proyek XML MSBuild.
  • Menggunakan MSBuild untuk membangun proyek Anda.
  • Menggunakan MSBuild untuk menyesuaikan proyek Anda.

Prasyarat

Anda memerlukan prasyarat ini untuk menyelesaikan panduan ini:

  • Salinan Visual Studio dengan pengembangan Desktop dengan beban kerja C++ terinstal.
  • Pemahaman umum tentang sistem MSBuild.

Catatan

Sebagian besar instruksi build tingkat rendah terkandung dalam .targets file dan .props yang ditentukan di bawah folder target default, disimpan dalam properti $(VCTargetsPath). Di sinilah Anda akan menemukan file seperti Microsoft.Cpp.Common.props. Jalur default untuk file-file ini di Visual Studio 2015 dan versi yang lebih lama berada di bawah %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\.

Catatan

Sebagian besar instruksi build tingkat rendah terkandung dalam .targets file dan .props yang ditentukan di bawah folder target default, disimpan dalam properti $(VCTargetsPath). Di sinilah Anda akan menemukan file seperti Microsoft.Cpp.Common.props. Jalur default untuk file-file ini di Visual Studio 2017 berada di bawah %VSINSTALLDIR%Common7\IDE\VC\VCTargets\. Visual Studio 2015 dan versi yang lebih lama menyimpannya di bawah %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\.

Catatan

Sebagian besar instruksi build tingkat rendah terkandung dalam .targets file dan .props yang ditentukan di bawah folder target default, disimpan dalam properti $(VCTargetsPath). Di sinilah Anda akan menemukan file seperti Microsoft.Cpp.Common.props. Jalur default untuk file-file ini berada di bawah %VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\. Elemen jalur <version> bergantung pada versi Visual Studio. Ini adalah v160 untuk Visual Studio 2019. Visual Studio 2017 menyimpan file-file ini di bawah %VSINSTALLDIR%Common7\IDE\VC\VCTargets\. Visual Studio 2015 dan versi yang lebih lama menyimpannya di bawah %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\<version>\.

Membuat file sumber C++

Dalam panduan ini, Anda akan membuat proyek yang memiliki file sumber dan file header. File sumber main.cpp berisi fungsi main untuk aplikasi konsol. File header main.h berisi kode untuk menyertakan file header <iostream>. Anda dapat membuat file C++ ini dengan menggunakan Visual Studio atau editor teks seperti Visual Studio Code.

Untuk membuat file sumber C++ untuk proyek Anda

  1. Membuat folder untuk proyek Anda.

  2. Buat file bernama main.cpp dan tambahkan kode ini ke file:

    // main.cpp : the application source code.
    #include <iostream>
    #include "main.h"
    int main()
    {
       std::cout << "Hello, from MSBuild!\n";
       return 0;
    }
    
  3. Buat file bernama main.h dan tambahkan kode ini ke file:

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

Membuat File Proyek XML MSBuild

File proyek MSBuild adalah file XML yang berisi elemen akar proyek (<Project>). Dalam proyek contoh yang akan Anda buat, elemen <Project> berisi tujuh elemen anak:

  • Tiga tag grup item (<ItemGroup>) yang menentukan konfigurasi proyek dan platform, nama file sumber, dan nama file header.
  • Tiga tag impor (<Import>) yang menentukan lokasi pengaturan Microsoft C++.
  • Tag grup properti (<PropertyGroup>) yang menentukan pengaturan proyek.

Untuk membuat file proyek MSBuild

  1. Gunakan editor teks untuk membuat file proyek bernama myproject.vcxproj, lalu tambahkan elemen akar <Project> yang diperlihatkan di sini. (Gunakan ToolsVersion="14.0" jika Anda menggunakan Visual Studio 2015, ToolsVersion="15.0" jika Anda menggunakan Visual Studio 2017, ToolsVersion="16.0" jika Anda menggunakan Visual Studio 2019, atau ToolsVersion="17.0" jika Anda menggunakan Visual Studio 2022.)

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

    Sisipkan elemen dalam langkah-langkah prosedur berikutnya di antara tag akar <Project> .

  2. Tambahkan kedua elemen turunan <ProjectConfiguration> ini dalam elemen <ItemGroup>. Elemen turunan menentukan konfigurasi debug dan rilis untuk sistem operasi Windows 32-bit:

    <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. <Import> Tambahkan elemen yang menentukan jalur pengaturan C++ default untuk proyek ini:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
    
  4. Tambahkan elemen grup properti (<PropertyGroup>) yang menentukan dua properti proyek, <ConfigurationType> dan <PlatformToolset>. (Gunakan v140 sebagai nilai <PlatformToolset> jika Anda menggunakan Visual Studio 2015, v141 jika Anda menggunakan Visual Studio 2017, v142 jika Anda menggunakan Visual Studio 2019 atau v143 jika Anda menggunakan Visual Studio 2022.)

    <PropertyGroup>
      <ConfigurationType>Application</ConfigurationType>
      <PlatformToolset>v143</PlatformToolset>
    </PropertyGroup>
    
  5. <Import> Tambahkan elemen yang menentukan jalur pengaturan C++ saat ini untuk proyek ini:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    
  6. Tambahkan elemen turunan <ClCompile> dalam elemen <ItemGroup>. Elemen turunan menentukan nama file sumber C/C++ untuk dikompilasi:

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

    Catatan

    <ClCompile> adalah target build dan didefinisikan dalam folder target default.

  7. Tambahkan elemen turunan <ClInclude> dalam elemen <ItemGroup>. Elemen turunan menentukan nama file header untuk file sumber C/C++:

    <ItemGroup>
      <ClInclude Include="main.h" />
    </ItemGroup>
    
  8. <Import> Tambahkan elemen yang menentukan jalur file yang menentukan target untuk proyek ini:

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

Selesaikan File Proyek

Kode ini menunjukkan file proyek lengkap yang Anda buat di prosedur sebelumnya. (Gunakan ToolsVersion=16.0 for Visual Studio 2019, ToolsVersion="15.0" untuk Visual Studio 2017, atau ToolsVersion="14.0" untuk Visual Studio 2015.)

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

Menggunakan MSBuild untuk Membangun Proyek Anda

Masukkan perintah ini di prompt perintah untuk membangun aplikasi konsol Anda:

msbuild myproject.vcxproj /p:configuration=debug

MSBuild membuat folder untuk file output, lalu mengkompilasi dan menautkan proyek Anda untuk menghasilkan Myproject.exe program. Setelah proses build selesai, gunakan perintah ini untuk menjalankan aplikasi dari folder debug:

myproject

Aplikasi harus menampilkan "Halo, dari MSBuild!" di jendela konsol.

Menyesuaikan Proyek Anda

MSBuild memungkinkan Anda menjalankan target build yang telah ditentukan sebelumnya, menerapkan properti yang ditentukan pengguna, dan menggunakan alat kustom, peristiwa, dan langkah build. Bagian ini mengilustrasikan tugas-tugas ini:

  • Menggunakan MSBuild dengan sasaran pembangunan.
  • Menggunakan MSBuild dengan properti pengembangan.
  • Menggunakan MSBuild dengan pengkompilasi dan alat 64-bit.
  • Menggunakan MSBuild dengan toolset yang berbeda.
  • Menambahkan kustomisasi MSBuild.

Menggunakan MSBuild dengan Target Build

Target build adalah sekumpulan perintah yang telah ditentukan sebelumnya atau ditentukan pengguna yang dapat dijalankan selama build. Gunakan opsi baris perintah target (/t) untuk menentukan target build. myproject Untuk proyek contoh, target yang telah clean ditentukan sebelumnya menghapus semua file di folder debug dan membuat file log baru.

Pada prompt perintah, masukkan perintah ini untuk membersihkan myproject:

msbuild myproject.vcxproj /t:clean

Menggunakan MSBuild dengan Properti Build

Opsi baris perintah properti (/p) memungkinkan Anda mengambil alih properti dalam file build proyek Anda. Dalam proyek contoh myproject, konfigurasi build untuk rilis atau debug ditentukan oleh properti Configuration. Sistem operasi yang akan Anda gunakan untuk menjalankan aplikasi bawaan ditentukan oleh Platform properti .

Pada prompt perintah, masukkan perintah ini untuk membuat debug build aplikasi myproject yang akan dijalankan di Windows 32-bit:

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

Asumsikan bahwa myproject proyek contoh juga mendefinisikan konfigurasi untuk Windows 64-bit, dan konfigurasi lain untuk sistem operasi kustom bernama myplatform.

Pada prompt perintah, masukkan perintah ini untuk membuat build rilis yang berjalan pada Windows 64-bit:

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

Pada command prompt, masukkan perintah ini untuk membuat build rilis untuk myplatform:

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

Menggunakan MSBuild dengan Pengkompilasi dan Alat 64-bit

Jika Anda telah menginstal Visual Studio pada Windows 64-bit, alat asli dan lintas x64 64 bit diinstal secara default. Anda dapat mengonfigurasi MSBuild untuk menggunakan pengkompilasi dan alat 64-bit untuk membangun aplikasi Anda dengan mengatur PreferredToolArchitecture properti . Properti ini tidak memengaruhi konfigurasi proyek atau properti platform. Secara default, alat versi 32-bit digunakan. Untuk menentukan versi 64-bit pengkompilasi dan alat, tambahkan elemen grup properti ini ke Myproject.vcxproj file proyek setelah Microsoft.Cpp.default.props elemen file <Import /> :

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

Pada prompt perintah, masukkan perintah ini untuk menggunakan alat 64-bit untuk membangun aplikasi Anda:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64

Menggunakan MSBuild dengan set alat yang berbeda

Jika Anda memiliki set alat dan pustaka untuk versi Microsoft C++ (MSVC) lainnya yang terinstal, MSBuild dapat membangun aplikasi untuk versi MSVC saat ini atau untuk versi lain yang diinstal. Misalnya, jika Anda telah menginstal Visual Studio 2012, untuk menentukan toolset Visual C++ 11.0 untuk Windows XP, tambahkan elemen grup properti ini ke Myproject.vcxproj file proyek setelah Microsoft.Cpp.props elemen file <Import /> :

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

Untuk membangun kembali proyek Anda dengan toolset Visual C++ 11.0 Windows XP, masukkan perintah ini:

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

Menambahkan kustomisasi MSBuild

MSBuild menyediakan berbagai cara untuk menyesuaikan proses build Anda. Artikel ini menunjukkan cara menambahkan langkah, alat, dan peristiwa build kustom ke proyek MSBuild Anda:

Lihat juga