Поделиться через


Пошаговое руководство. Использование MSBuild для создания проекта Visual C++

В данном пошаговом руководстве демонстрируется порядок использования MSBuild для построения проекта Visual C++ в командной строке. Будет показано создание исходных файлов C++ и XML-файла проекта для консольного приложения Visual C++. После построения проекта будет показан порядок настройки процесса построения.

В данном пошаговом руководстве рассмотрены следующие задачи:

  • создание исходных файлов C++ для проекта;

  • создание XML-файла проекта MSBuild;

  • использование MSBuild для построения проекта;

  • использование MSBuild для настройки проекта.

Обязательные компоненты

Для выполнения данного пошагового руководства необходимо следующее:

  • Visual Studio 2010

  • общее понимание системы MSBuild.

Создание исходных файлов C++

В данном пошаговом руководстве будет создан проект, имеющий исходный файл и файл заголовка. Исходный файл main.cpp содержит главную функцию для консольного приложения. Файл заголовка main.h содержит код, включающий файл заголовка iostream. Эти файлы C++ можно создать с помощью Visual Studio или текстового редактора.

Создание исходных файлов C++ для проекта

  1. Создайте каталог для проекта.

  2. Создайте файл с именем main.cpp и добавьте в него следующий код:

    // main.cpp : the application source code.
    #include <iostream>
    #include "main.h"
    int main()
    {
       std::cout << "Hello, from MSBuild!\n";
       return 0;
    }
    
  3. Создайте файл с именем main.h и добавьте в него следующий код:

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

Создание XML-файла проекта MSBuild

Файл проекта MSBuild — это XML-файл, содержащий корневой элемент проекта (<Project>). В следующем примере проекта элемент <Project> содержит семь дочерних элементов:

  • три тега группы элементов (<ItemGroup>), указывающие конфигурацию и платформу проекта, имя исходного файла и имя файла заголовка;

  • три тега импорта (<Import>), указывающие расположение параметров Visual C++ Microsoft;

  • тег группы свойств (<PropertyGroup>), указывающий параметры проекта.

Создание файла проекта MSBuild

  1. С помощью текстового редактора создайте файл проекта с именем myproject.vcxproj, а затем добавьте в него следующий корневой элемент <Project>. Вставьте элементы в следующих этапах процедуры между тегами корневого элемента <Project>:

    <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    </Project>
    
  2. Добавьте в элемент <ItemGroup> следующие два дочерних элемента <ProjectConfiguration>. Этот дочерний элемент задает конфигурации отладки и выпуска для 32-разрядной операционной системы Windows:

    <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/>, задающий путь к параметрам C++ по умолчанию для этого проекта:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
    
  4. Добавьте следующий элемент группы свойств (<PropertyGroup>), задающий два свойства проекта:

    <PropertyGroup>
       <ConfigurationType>Application</ConfigurationType>
       <ShowAllFiles>false</ShowAllFiles>
    </PropertyGroup>
    
  5. Добавьте следующий элемент <Import/>, задающий путь к текущим параметрам C++ для этого проекта:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    
  6. Добавьте в элемент <ImportGroup> следующий дочерний элемент <ClCompile>. Этот дочерний элемент задает имя исходного файла C/C++ для компиляции:

    <ItemGroup>
       <ClCompile Include="main.cpp" />
    </ItemGroup>
    
  7. Добавьте в элемент <ImportGroup> следующий дочерний элемент <ClInclude>. Этот дочерний элемент задает имя файла заголовка для исходного файла C/C++:

    <ItemGroup>
       <ClInclude Include="main.h" />
    </ItemGroup>
    
  8. Добавьте следующий элемент <Import>, задающий путь к файлу, в котором определен целевой объект для этого проекта:

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

Полный файл проекта

В следующем коде показан полный файл проекта, созданный на предыдущем этапе.

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="https://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>
    <ShowAllFiles>false</ShowAllFiles>
  </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>

Использование MSBuild для построения проекта

Для построения консольного приложения введите в командной строке следующую команду:

msbuild myproject.vcxproj /p:configuration=debug

MSBuild создает каталог для выходных файлов, а затем компилирует и связывает проект для создания программы Myproject.exe. После завершения процесса построения запустите приложение с помощью следующей команды:

myproject

Приложение должно отобразить в окне консоли надпись "Hello, from MSBuild!"

Настройка проекта

MSBuild предоставляет возможность выполнения предварительно определенных целевых объектов построения, применения заданных пользователем свойств, а также использования настраиваемых инструментов, событий и этапов построения. В данном разделе рассматриваются следующие задачи:

  • использование MSBuild с целевыми объектами построения;

  • использование MSBuild со свойствами построения;

  • использование MSBuild с различными наборами инструментов;

  • добавление настроек MSBuild.

Использование MSBuild с целевыми объектами построения

Целевой объект построения — это именованный набор предварительно определенных или заданных пользователем команд, который могут выполняться во время построения. Для указания целевого объекта построения используется параметр командной строки /t. В случае примера проекта myproject предварительно определенный целевой объект clean удаляет все файлы в папке отладки и создает новый файл журнала.

В командной строке введите следующую команду, чтобы очистить myproject:

msbuild myproject.vcxproj /t:clean

Использование MSBuild со свойствами построения

Параметр командной строки /p позволяет переопределять свойство в файле построения проекта. В примере проекта myproject конфигурация построения выпуска или отладки задается свойством Configuration. Операционная система, в которой должно выполняться построенное приложение, задается свойством Platform.

Чтобы создать построение отладки приложения myproject, которое должно работать в 32-разрядных версиях Windows, введите в командной строке следующую команду:

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

Предположим, что пример проекта myproject также задает конфигурацию для 64-разрядных версий Windows и еще одну конфигурацию для пользовательской операционной системы с именем myplatform.

Чтобы создать построение выпуска для работы в 64-разрядных версиях Windows, введите в командной строке следующую команду:

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

Чтобы создать построение выпуска для myplatform, введите в командной строке следующую команду:

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

Использование MSBuild с другим набором инструментов

Если установлены обе библиотеки (наборы инструментов) Visual C++ — 9.0 и 10.0, MSBuild может построить приложения для Visual C++ либо 9.0, либо 10.0. Чтобы задать набор инструментов Visual C++ 9.0, добавьте в файл проекта Myproject.vcxproj после элемента <Import /> для Microsoft.Cpp.props следующий элемент группы свойств:

<PropertyGroup>
    <PlatformToolset>v90</PlatformToolset>
</PropertyGroup>

Чтобы заново построить проект с набором инструментов Visual C++ 9.0, введите какую-либо из следующих команд:

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

Добавление настроек MSBuild

MSBuild предоставляет множество способов настройки процесса построения. В следующих темах рассматривается порядок добавления пользовательских этапов построения, инструментов и событий в проект MSBuild:

Журнал изменений

Дата

Журнал

Причина

Апрель 2011

Заключен в кавычки атрибут "xmlns" в первом фрагменте кода.

Обратная связь от клиента.