创建 C++ 生成文件项目
生成文件是一种说明如何编译和链接(或生成)一组源代码文件的文本文件。 程序(通常称为 make 程序)会读取生成文件并调用编译器、链接器和可能的其他程序来生成可执行文件。 Microsoft 程序称为 NMAKE。
如果你有现有生成文件项目,则当你想要在 Visual Studio IDE 中编辑、生成和调试时,你有以下选择:
- 在 Visual Studio 中创建一个生成文件项目,该项目使用现有的生成文件来配置 Visual Studio 将用于 IntelliSense 的 .vcxproj 文件。 (你将不会具有在本机 MSBuild 项目中获得的所有 IDE 功能。)请参阅下面的创建生成文件项目。
- 使用“从现有代码文件新建项目”向导来从源代码创建本机 MSBuild 项目。 不再使用原始生成文件。 有关详细信息,请参阅如何:通过现有代码创建 C++ 项目。
- Visual Studio 2017 及更高版本:使用“打开文件夹”功能按原样编辑和生成生成文件项目,无需 MSBuild 系统的任何参与。 有关详细信息,请参阅 C++ 的“打开文件夹”项目。
- Visual Studio 2019 及更高版本:为 Linux 创建 UNIX 生成文件项目。
使用生成文件项目模板创建生成文件项目
在 Visual Studio 2017 和更高版本中,生成项目模板在安装 C++ 桌面开发工作负载后可用。
按照向导来指定用于生成文件的命令和环境。 然后可以在 Visual Studio 中使用该项目生成代码。
默认情况下,在解决方案资源管理器中,生成文件项目不显示文件。 生成文件项目指定生成设置,这些设置反映在项目的属性页中。
在项目中指定的输出文件对生成脚本生成的名称没有影响。 它仅声明意图。 生成文件仍控制生成过程并指定生成目标。
在 Visual Studio 中创建生成文件项目
在 Visual Studio 主菜单中,选择“文件”>“新建”>“项目”,然后在搜索框中键入“makefile”。 如果看到多个项目模板,请根据目标平台从选项中进行选择。
仅限 Windows:在生成文件项目“调试配置设置”页中,提供用于调试和传播生成的命令、输出、清理和重新生成信息。 如果想要为发布配置指定其他设置,请选择“下一步”。
单击“完成”以关闭对话框并在“解决方案资源管理器”中打开新创建的项目。
在 Visual Studio 2015 或 Visual Studio 2017 中创建生成文件项目
从 Visual Studio 起始页上,在“新建项目”搜索框中键入“生成文件”。 或者,在“新建项目”对话框中,展开“Visual C++”>“常规” (Visual Studio 2015) 或“其他”(Visual Studio 2017),然后选择“模板”窗格中的“生成文件项目”以打开项目向导。
在应用程序设置页中,提供用于调试和传播生成的命令、输出、清除和重新生成信息。
选择“完成”以关闭向导并在“解决方案资源管理器”中打开新创建的项目。
可以在项目的属性页中查看和编辑项目的属性。 有关显示属性页的详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性。
生成文件项目向导
创建生成文件项目后,可在项目属性页的“Nmake”页中查看和编辑以下每个选项。
生成命令行:指定用户从“生成”菜单中选择“生成”时要运行的命令行。 显示在项目属性页的“Nmake”页的“生成”命令行字段中。
输出:指定将包含命令行输出的文件的名称。 默认情况下,此选项根据项目名称而定。 显示在项目属性页的“Nmake”页的“输出”字段中。
清理命令:指定用户从“生成”菜单中选择“清理”时要运行的命令行。 显示在项目属性页的“Nmake”页的“清理”命令行字段中。
重新生成命令行:指定用户从“生成”菜单中选择“重新生成”时要运行的命令行。 显示在项目属性页的“Nmake”页的“重新生成所有命令行”字段中。
如何:对生成文件项目启用 IntelliSense
错误设置某些项目设置或编译器操作时,IntelliSense 无法运行生成文件项目。 请按照这些步骤配置生成文件项目,以便 IntelliSense 按预期运行:
打开“属性页”对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性。
选择“配置属性”>“NMake”属性页。
根据需要在“IntelliSense”下修改属性:
设置“预处理器定义”属性以定义生成文件项目中的任何预处理器符号。 有关详细信息,请参阅
/D
(预处理器定义)。设置“包含搜索路径”属性,指定编译器将搜索的目录列表,以解析传递到生成文件项目中的预处理器指令的文件引用。 有关详细信息,请参阅
/I
(附加包含目录)。对于从命令窗口使用 CL.EXE 生成的项目,设置“INCLUDE”环境变量,指定编译器将搜索的目录,以解析传递到生成文件项目中的预处理器指令的文件引用。
设置“强制包含”属性,指定生成生成文件时,要处理哪些头文件。 有关详细信息,请参阅
/FI
(命名强制包含文件)。设置“程序集搜索路径”属性指定编译器将搜索的目录列表,以解析对项目中 .NET 程序集的引用。 有关详细信息,请参阅
/AI
(指定元数据目录)。设置“强制使用程序集”属性指定生成生成文件时,要处理哪些 .NET 程序集。 有关详细信息,请参阅
/FU
(命名强制 #using 文件)。设置“其他选项”属性,指定分析 C++ 文件时 IntelliSense 使用的其他编译器开关。
单击“确定”关闭属性页。
使用“全部保存”命令,保存已修改的项目设置。
下一次在 Visual Studio 开发环境中打开生成文件项目时,请在生成文件项目上依次运行“清理解决方案”命令和“生成解决方案”命令。 IntelliSense 应该会在 IDE 中正常运行。
另请参阅
使用 IntelliSense
NMAKE 参考
如何:通过现有代码创建 C++ 项目
生成文件中的特殊字符
生成文件内容和功能