Создание проекта makefile на C++

Makefile — это текстовый файл, содержащий инструкции по компиляции и связыванию (или сборке) набора файлов исходного кода. Программа (часто называемая программой make) считывает файл makefile и вызывает компилятор, компоновщик и, возможно, другие программы для создания исполняемого файла. Программа Майкрософт называется NMAKE.

Если у вас есть существующий проект makefile, у вас есть следующие варианты, если вы хотите изменить, выполнить сборку и отладку в интегрированной среде разработки Visual Studio:

  • Создайте в Visual Studio проект makefile, который использует существующий файл makefile для настройки файла VCXPROJ, используемого средой Visual Studio для IntelliSense. (У вас нет всех функций интегрированной среды разработки, которые вы получаете с помощью собственного проекта MSBuild.) См. статью "Создание проекта makefile" ниже.
  • Используйте мастер создания нового проекта из существующих файлов кода, чтобы создать собственный проект MSBuild из исходного кода. Исходный файл makefile больше не будет использоваться. Дополнительные сведения см. в разделе Практическое руководство. Создание проекта C++ из существующего кода.
  • Visual Studio 2017 и более поздних версий: используйте функцию "Открыть папку" для редактирования и создания проекта makefile как есть без участия в системе MSBuild. Дополнительные сведения см. в статье Проекты "Открыть папку" для C++.
  • Visual Studio 2019 и более поздних версий: создайте проект makefile UNIX для Linux.

Создание проекта makefile с использованием шаблона проекта makefile

В Visual Studio 2017 и более поздних версиях шаблон проекта Makefile доступен, если установлена рабочая нагрузка разработки классических приложений на C++.

Используйте мастер, чтобы указать команды и среду, используемые файлом makefile. Затем этот проект можно использовать для сборки кода в Visual Studio.

По умолчанию проект makefile не отображает в обозревателе решений никаких файлов. Проект makefile задает параметры сборки, которые показаны на странице свойств проекта.

Выходной файл, указанный в проекте, не влияет на имя, которое создает скрипт сборки. Он объявляет только намерение. Файл makefile по-прежнему управляет процессом сборки и указывает ее целевые объекты.

Создание проекта makefile в Visual Studio

  1. В главном меню Visual Studio выберите Файл>Создать>Проект и в поле поиска введите "makefile". Если вы видите несколько шаблонов проекта, выберите варианты в зависимости от целевой платформы.

  2. Только Windows: на странице "Конфигурация отладки проекта Makefile" Параметры укажите команду, выходные данные, очистку и перестроение для отладочных и розничных сборок. Нажмите кнопку "Далее", если вы хотите указать различные параметры конфигурации выпуска.

  3. Нажмите кнопку "Готово", чтобы закрыть диалоговое окно и открыть только что созданный проект в Обозреватель решений.

Создание проекта makefile в Visual Studio 2015 или Visual Studio 2017

  1. На начальной странице Visual Studio введите строку "makefile" в поле поиска Новый проект. Или же откройте диалоговое окно Новый проект, разверните узел Visual C++>Общие (Visual Studio 2015) или Прочие (Visual Studio 2017) и в области шаблонов выберите Проект Makefile, чтобы открыть мастер проектов.

  2. На странице Параметры приложения предоставьте сведения о команде, выводе, удалении и перестроении для отладочной и окончательной сборок.

  3. Нажмите кнопку "Готово", чтобы закрыть мастер и открыть созданный проект в Обозреватель решений.

На этой странице свойств можно просматривать и изменять свойства проекта. Дополнительные сведения о отображении страницы свойств см. в разделе "Задание компилятора C++" и свойств сборки в Visual Studio.

Мастер проекта makefile

Создав проект makefile, вы можете просматривать и изменять каждый из следующих параметров на странице Nmake свойств проекта.

  • Командная строка сборки: указывает командную строку, выполняемую при выборе пользователем команды "Сборка" в меню "Сборка". Отображается в поле "Командная строка для сборки" на странице "Nmake" свойств проекта.

  • Выходные данные: указывает имя файла, содержащего выходные данные для командной строки. По умолчанию этот параметр основан на имени проекта. Отображается в поле "Вывод" на странице "Nmake" свойств проекта.

  • Очистка команд. Указывает командную строку, выполняемую при нажатии пользователем кнопки "Очистить" в меню "Сборка". Отображается в поле "Командная строка для очистки" на странице "Nmake" свойств проекта.

  • Перестроение командной строки: указывает командную строку, выполняемую при выборе пользователем команды "Перестроить" в меню "Сборка". Отображается в поле "Командная строка для перестроения всех файлов" на странице "Nmake" свойств проекта.

Практическое руководство. Использование IntelliSense для проекта Makefile

IntelliSense не работает в проектах makefile, если определенные параметры проекта или компилятора заданы неправильно. Чтобы настроить проекты makefile для правильной работы IntelliSense, выполните указанные ниже действия.

  1. Откройте диалоговое окно Страницы свойств. Подробнее см. в статье Настройка компилятора C++ и свойств сборки в Visual Studio.

  2. Выберите страницу свойств>конфигурации NMake.

  3. Измените свойства в IntelliSense соответствующим образом:

    • Задайте свойство Определения препроцессора, чтобы определить символы препроцессора в проекте makefile. Дополнительные сведения см. в разделе /D (Определения препроцессора).

    • Задайте свойство Путь поиска включаемых файлов, чтобы указать список каталогов, где компилятор будет производить поиск для разрешения ссылок на файлы, передаваемых в директивы препроцессора в новом проекте makefile. Дополнительные сведения см. в разделе /I (Дополнительные каталоги включения).

    • Для проектов, созданных с использованием CL.EXE из командного окна, задайте переменную среды INCLUDE, чтобы указать каталоги, где компилятор будет производить поиск для разрешения ссылок на файлы, передаваемых в директивы препроцессора в новом проекте makefile.

    • Задайте свойство Принудительно включаемые файлы, чтобы указать файлы заголовков, обрабатываемые при сборке проекта makefile. Дополнительные сведения см. в разделе /FI (Имя принудительного включения файла).

    • Задайте свойство Путь поиска сборок, чтобы указать список каталогов, где компилятор будет производить поиск для разрешения ссылок на сборки .NET в проекте. Дополнительные сведения см. в разделе /AI (Указание каталогов метаданных).

    • Задайте свойство Обязательно используемые сборки, чтобы указать, какие сборки .NET обрабатываются при сборке проекта makefile. Дополнительные сведения см. в разделе /FU (Имя принудительного #using файла).

    • Задайте свойство "Дополнительные параметры", чтобы указать другие параметры компилятора, которые будут использоваться IntelliSense при анализе файлов C++.

  4. Нажмите кнопку ОК, чтобы закрыть окно страниц свойств.

  5. Используйте команду Сохранить все, чтобы сохранить измененные параметры проекта.

При следующем открытии проекта makefile в среде разработки Visual Studio запустите команду Очистить решение, а затем — команду Собрать решение для проекта makefile. Технология IntelliSense должна работать в интегрированной среде разработки правильно.

См. также

Using IntelliSense
Справочник по NMAKE
Практическое руководство. Создание проекта C++ из существующего кода
Специальные символы в файле makefile
Содержимое файла Makefile и компоненты