Создание проекта 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
В главном меню Visual Studio выберите Файл>Создать>Проект и в поле поиска введите "makefile". Если вы видите несколько шаблонов проекта, выберите варианты в зависимости от целевой платформы.
Только Windows: на странице "Параметры конфигурации отладки проекта Makefile" укажите команду, выходные данные, очистку и перестроение для отладочных и розничных сборок. Нажмите кнопку "Далее", если вы хотите указать различные параметры конфигурации выпуска.
Нажмите кнопку "Готово", чтобы закрыть диалоговое окно и открыть только что созданный проект в Обозреватель решений.
Создание проекта makefile в Visual Studio 2015 или Visual Studio 2017
На начальной странице Visual Studio введите строку "makefile" в поле поиска Новый проект. Или же откройте диалоговое окно Новый проект, разверните узел Visual C++>Общие (Visual Studio 2015) или Прочие (Visual Studio 2017) и в области шаблонов выберите Проект Makefile, чтобы открыть мастер проектов.
На странице Параметры приложения предоставьте сведения о команде, выводе, удалении и перестроении для отладочной и окончательной сборок.
Нажмите кнопку "Готово", чтобы закрыть мастер и открыть созданный проект в Обозреватель решений.
На этой странице свойств можно просматривать и изменять свойства проекта. Дополнительные сведения о отображении страницы свойств см. в разделе "Задание компилятора C++" и свойств сборки в Visual Studio.
Мастер проекта makefile
Создав проект makefile, вы можете просматривать и изменять каждый из следующих параметров на странице Nmake свойств проекта.
Командная строка сборки: указывает командную строку, выполняемую при выборе пользователем команды "Сборка" в меню "Сборка". Отображается в поле "Командная строка для сборки" на странице "Nmake" свойств проекта.
Выходные данные: указывает имя файла, содержащего выходные данные для командной строки. По умолчанию этот параметр основан на имени проекта. Отображается в поле "Вывод" на странице "Nmake" свойств проекта.
Очистка команд. Указывает командную строку, выполняемую при нажатии пользователем кнопки "Очистить" в меню "Сборка". Отображается в поле "Командная строка для очистки" на странице "Nmake" свойств проекта.
Перестроение командной строки: указывает командную строку, выполняемую при выборе пользователем команды "Перестроить" в меню "Сборка". Отображается в поле "Командная строка для перестроения всех файлов" на странице "Nmake" свойств проекта.
Практическое руководство. Использование IntelliSense для проекта Makefile
IntelliSense не работает в проектах makefile, если определенные параметры проекта или компилятора заданы неправильно. Чтобы настроить проекты makefile для правильной работы IntelliSense, выполните указанные ниже действия.
Откройте диалоговое окно Страницы свойств. Подробнее см. в статье Настройка компилятора C++ и свойств сборки в Visual Studio.
Выберите страницу свойств>конфигурации NMake.
Измените свойства в IntelliSense соответствующим образом:
Задайте свойство Определения препроцессора, чтобы определить символы препроцессора в проекте makefile. Дополнительные сведения см. в разделе
/D
(Определения препроцессора).Задайте свойство Путь поиска включаемых файлов, чтобы указать список каталогов, где компилятор будет производить поиск для разрешения ссылок на файлы, передаваемых в директивы препроцессора в новом проекте makefile. Дополнительные сведения см. в разделе
/I
(Дополнительные каталоги включения).Для проектов, созданных с использованием CL.EXE из командного окна, задайте переменную среды INCLUDE, чтобы указать каталоги, где компилятор будет производить поиск для разрешения ссылок на файлы, передаваемых в директивы препроцессора в новом проекте makefile.
Задайте свойство Принудительно включаемые файлы, чтобы указать файлы заголовков, обрабатываемые при сборке проекта makefile. Дополнительные сведения см. в разделе
/FI
(Имя принудительного включения файла).Задайте свойство Путь поиска сборок, чтобы указать список каталогов, где компилятор будет производить поиск для разрешения ссылок на сборки .NET в проекте. Дополнительные сведения см. в разделе
/AI
(Указание каталогов метаданных).Задайте свойство Обязательно используемые сборки, чтобы указать, какие сборки .NET обрабатываются при сборке проекта makefile. Дополнительные сведения см. в разделе
/FU
(Имя принудительного #using файла).Задайте свойство "Дополнительные параметры", чтобы указать другие параметры компилятора, которые будут использоваться IntelliSense при анализе файлов C++.
Нажмите кнопку ОК, чтобы закрыть окно страниц свойств.
Используйте команду Сохранить все, чтобы сохранить измененные параметры проекта.
При следующем открытии проекта makefile в среде разработки Visual Studio запустите команду Очистить решение, а затем — команду Собрать решение для проекта makefile. Технология IntelliSense должна работать в интегрированной среде разработки правильно.
См. также
Using IntelliSense
Справочник по NMAKE
Практическое руководство. Создание проекта C++ из существующего кода
Специальные символы в файле makefile
Содержимое файла Makefile и компоненты