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

Объект makefile представляет собой текстовый файл с инструкциями по компиляции и компоновке (или сборке) некоторого набора файлов исходного кода C++.A makefile is a text file that contains instructions for how to compile and link (or build) a set of C++ source code files. Программа make считывает файл makefile и вызывает компилятор, компоновщик и другие программы для создания исполняемого файла.A make program reads the makefile and invokes a compiler, linker and possibly other programs to make an executable file. Реализация make, созданная корпорацией Майкрософт, носит имя NMAKE.Microsoft's implementation of the make program is called NMAKE.

Если у вас есть существующий проект Makefile, который вы хотите развивать и (или) отлаживать в интегрированной среде разработки Visual Studio, у вас есть следующие варианты.If you have an existing makefile project, you have these choices if you want to code and/or debug it in the Visual Studio IDE:

  • Создайте в Visual Studio проект makefile, который использует существующий файл makefile для настройки файла VCXPROJ, используемого средой Visual Studio для IntelliSense.Create a makefile project in Visual Studio that uses your existing makefile to configure a .vcxproj file that Visual Studio will use for IntelliSense. (У вас не будет всех функций интегрированной среды разработки, которые вы получаете с помощью собственного проекта MSBuild.) См. раздел Создание проекта Makefile ниже.(You will not have all the IDE features that you get with a native MSBuild project.) See To create a makefile project below.
  • Используйте мастер создания нового проекта из существующих файлов кода, чтобы создать собственный проект MSBuild из исходного кода.Use the Create New Project from Existing Code Files wizard to create a native MSBuild project from your source code. Исходный файл makefile после этого использоваться не будет.The original makefile will not be used after this. Дополнительные сведения см. в разделе Практическое руководство. Создание проекта C++ из существующего кода.For more information, see How to: Create a C++ Project from Existing Code.
  • Visual Studio 2017 и более поздние версии: используйте функцию " Открыть папку " для изменения и сборки проекта Makefile без участия в системе MSBuild.Visual Studio 2017 and later: Use the Open Folder feature to edit and build a makefile project as-is without any involvement of the MSBuild system. Дополнительные сведения см. в статье Проекты "Открыть папку" для C++.For more information, see Open Folder projects for C++.
  • Visual Studio 2019 и более поздние версии: Создание проекта UNIX для Linux.Visual Studio 2019 and later: Create a UNIX makefile project for Linux.

Создание проекта makefile с использованием шаблона проекта makefile To create a makefile project with the makefile project template

В Visual Studio 2017 и более поздних версиях шаблон проекта Makefile доступен, если установлена рабочая нагрузка разработки классических приложений на C++.In Visual Studio 2017 and later, the Makefile project template is available when the C++ Desktop Development workload is installed.

Используйте мастер, чтобы указать команды и среду, используемые файлом makefile.Follow the wizard to specify the commands and environment used by your makefile. Затем этот проект можно использовать для сборки кода в Visual Studio.You can then use this project to build your code in Visual Studio.

По умолчанию проект makefile не отображает в обозревателе решений никаких файлов.By default, the makefile project displays no files in Solution Explorer. Проект makefile задает параметры сборки, которые показаны на странице свойств проекта.The makefile project specifies the build settings, which are reflected in the project's property page.

Выходной файл, который задается в проекте, не влияет на имя, которое формирует скрипт построения; он указывает только на намерения.The output file that you specify in the project has no effect on the name that the build script generates; it declares only an intention. Файл makefile по-прежнему управляет процессом сборки и указывает ее целевые объекты.Your makefile still controls the build process and specifies the build targets.

Создание проекта makefile в Visual Studio 2019To create a makefile project in Visual Studio 2019

  1. В главном меню Visual Studio выберите файл > создать > проект и введите Makefile в поле поиска.From the Visual Studio main menu, choose File > New > Project and type "makefile" into the search box. Или же откройте диалоговое окно Новый проект, разверните узел Visual C++ > Общие (Visual Studio 2015) или Прочие (Visual Studio 2017) и выберите один из двух вариантов в зависимости от того, предназначен ли проект для Windows или Linux.Or, in the New Project dialog box, expand Visual C++ > General (Visual Studio 2015) or Other (Visual Studio 2017) and then select from the two options depending on whether you will be targeting Windows or Linux.

  2. Только для Windows: на странице Параметры конфигурации отладки укажите сведения о команде, выходе, очистке и перестроении для сборок отладки и розничной торговли.Windows only: In the Debug Configuration Settings page, provide the command, output, clean, and rebuild information for debug and retail builds. Чтобы указать другие параметры для конфигурации выпуска, нажмите кнопку Далее.Click Next if you want to specify different settings for a Release configuration.

  3. Нажмите кнопку Готово, чтобы закрыть диалоговое окно и открыть созданный проект в обозревателе решений.Click Finish to close the dialog and open the newly created project in Solution Explorer.

Создание проекта makefile в Visual Studio 2015 или Visual Studio 2017To create a makefile project in Visual Studio 2015 or Visual Studio 2017

  1. На начальной странице Visual Studio введите строку "makefile" в поле поиска Новый проект.From the Visual Studio start page, type "makefile" in the New Project search box. Или же откройте диалоговое окно Новый проект, разверните узел Visual C++ > Общие (Visual Studio 2015) или Прочие (Visual Studio 2017) и в области шаблонов выберите Проект Makefile, чтобы открыть мастер проектов.Or, in the New Project dialog box, expand Visual C++ > General (Visual Studio 2015) or Other (Visual Studio 2017) and then select Makefile Project in the Templates pane to open the project wizard.

  2. На странице Параметры приложения предоставьте сведения о команде, выводе, удалении и перестроении для отладочной и окончательной сборок.In the Application Settings page, provide the command, output, clean, and rebuild information for debug and retail builds.

  3. Нажмите кнопку Готово, чтобы закрыть мастер и открыть вновь созданный проект в обозревателе решений.Click Finish to close the wizard and open the newly created project in Solution Explorer.

На этой странице свойств можно просматривать и изменять свойства проекта.You can view and edit the project's properties in its property page. Сведения об отображении страницы свойств см. в статье Настройка компилятора C++ и свойств сборки в Visual Studio.See Set C++ compiler and build properties in Visual Studio for information about displaying the property page.

Мастер проекта makefileMakefile project wizard

Создав проект makefile, вы можете просматривать и изменять каждый из следующих параметров на странице Nmake свойств проекта.After you create a makefile project, you can view and edit each of the following options in the Nmake page of the project's property page.

  • Командная строка сборки: Задает командную строку, которая будет запускаться при выборе пользователем сборки в меню "сборка".Build command line: Specifies the command line to run when the user selects Build from the Build menu. Отображается в поле "Командная строка для сборки" на странице "Nmake" свойств проекта.Displayed in the Build command line field on the Nmake page of the project's property page.

  • Выходные данные: Указывает имя файла, который будет содержать выходные данные для командной строки.Output: Specifies the name of the file that will contain the output for the command line. По умолчанию этот параметр основан на имени проекта.By default, this option is based on the project name. Отображается в поле "Вывод" на странице "Nmake" свойств проекта.Displayed in the Output field on the Nmake page of the project's property page.

  • Команды очистки: Задает командную строку, выполняемую при выборе пользователем команды Очистить в меню Сборка.Clean commands: Specifies the command line to run when the user selects Clean from the Build menu. Отображается в поле "Командная строка для очистки" на странице "Nmake" свойств проекта.Displayed in the Clean command line field on the Nmake page of the project's property page.

  • Командная строка перестроения: Задает командную строку для запуска, когда пользователь выбирает перестроение в меню "сборка".Rebuild command line: Specifies the command line to run when the user selects Rebuild from the Build menu. Отображается в поле "Командная строка для перестроения всех файлов" на странице "Nmake" свойств проекта.Displayed in the Rebuild all command line field on the Nmake page of the project's property page.

Практическое руководство. Использование IntelliSense для проекта MakefileHow to: Enable IntelliSense for Makefile Projects

IntelliSense не работает в проектах makefile, если определенные параметры проекта или компилятора заданы неправильно.IntelliSense fails in makefile projects when certain project settings or compiler options are set up incorrectly. Чтобы настроить проекты makefile для правильной работы IntelliSense, выполните указанные ниже действия.Follow these steps to configure makefile projects so that IntelliSense works as expected:

  1. Откройте диалоговое окно Страницы свойств.Open the Property Pages dialog box. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.For details, see Set C++ compiler and build properties in Visual Studio.

  2. Разверните узел Свойства конфигурации.Expand the Configuration Properties node.

  3. Выберите страницу свойств NMake и соответствующим образом измените свойства в разделе IntelliSense.Select the NMake property page, and then modify properties under IntelliSense as appropriate.

    • Задайте свойство Определения препроцессора, чтобы определить символы препроцессора в проекте makefile.Set the Preprocessor Definitions property to define any preprocessor symbols in your makefile project. Дополнительные сведения см. в разделе /D (определения препроцессора).See /D (Preprocessor Definitions), for more information.

    • Задайте свойство Путь поиска включаемых файлов, чтобы указать список каталогов, где компилятор будет производить поиск для разрешения ссылок на файлы, передаваемых в директивы препроцессора в новом проекте makefile.Set the Include Search Path property to specify the list of directories that the compiler will search to resolve file references that are passed to preprocessor directives in your makefile project. Дополнительные сведения см. в разделе /I (дополнительные каталоги включения).See /I (Additional Include Directories), for more information.

    • Для проектов, созданных с использованием CL.EXE из командного окна, задайте переменную среды INCLUDE, чтобы указать каталоги, где компилятор будет производить поиск для разрешения ссылок на файлы, передаваемых в директивы препроцессора в новом проекте makefile.For projects that are built using CL.EXE from a Command Window, set the INCLUDE environment variable to specify directories that the compiler will search to resolve file references that are passed to preprocessor directives in your makefile project.

    • Задайте свойство Принудительно включаемые файлы, чтобы указать файлы заголовков, обрабатываемые при сборке проекта makefile.Set the Forced Includes property to specify which header files to process when building your makefile project. Дополнительные сведения см. в разделе /FI (имя принудительно включаемого файла).See /FI (Name Forced Include File), for more information.

    • Задайте свойство Путь поиска сборок, чтобы указать список каталогов, где компилятор будет производить поиск для разрешения ссылок на сборки .NET в проекте.Set the Assembly Search Path property to specify the list of directories that the compiler will search to resolve references to .NET assemblies in your project. Дополнительные сведения см. в разделе /AI (указание каталогов метаданных).See /AI (Specify Metadata Directories), for more information.

    • Задайте свойство Обязательно используемые сборки, чтобы указать, какие сборки .NET обрабатываются при сборке проекта makefile.Set the Forced Using Assemblies property to specify which .NET assemblies to process when building your makefile project. Дополнительные сведения см. в разделе /FU (именование файла с принудительно используемым атрибутом #using).See /FU (Name Forced #using File), for more information.

    • Задайте свойство Дополнительные параметры, чтобы указать дополнительные параметры компилятора, которые должны использоваться IntelliSense при анализе файлов C++.Set the Additional Options property to specify additional compiler switches to be used by IntelliSense when parsing C++ files.

  4. Нажмите кнопку ОК, чтобы закрыть страницы свойств.Click OK to close the property pages.

  5. Используйте команду Сохранить все, чтобы сохранить измененные параметры проекта.Use the Save All command to save the modified project settings.

При следующем открытии проекта makefile в среде разработки Visual Studio запустите команду Очистить решение, а затем — команду Собрать решение для проекта makefile.The next time you open your makefile project in the Visual Studio development environment, run the Clean Solution command and then the Build Solution command on your makefile project. Технология IntelliSense должна работать в интегрированной среде разработки правильно.IntelliSense should work properly in the IDE.

См. также разделSee also

Использование технологии IntelliSenseUsing IntelliSense
Справочник по NMAKENMAKE Reference
Практическое руководство. Создание проекта C++ из существующего кодаHow to: Create a C++ Project from Existing Code
Специальные символы в файле MakefileSpecial Characters in a Makefile
Содержимое файла makefileContents of a Makefile