语法
NMAKE[option ...] [macros ...] [targets ...] [command-file ...]@
备注
NMAKE 必须在开发人员命令提示符窗口中运行。 Developer Command Prompt 窗口为在命令行中构建所需的工具、库和包含文件路径设置了环境变量。 有关如何打开开发人员命令提示符窗口的详细信息,请参阅 从命令行使用 MSVC 工具集。
NMAKE 只生成指定的目标,如果没有指定,则生成生成文件中的第一个目标。 第一个生成文件目标可以是构建其他目标的伪目标。 NMAKE 使用用 /F 指定的生成文件,或者如果未指定 /F,则使用当前目录中的生成文件。 如果没有指定生成文件,它使用推理规则来生成命令行目标。
命令文件文本文件(或响应文件)包含命令行输入。 其他输入可以位于 @command-file 之前或之后。 允许路径。 在 command-file 中,换行符被视为空格。 如果宏定义包含空格,则将宏定义括在引号中。
NMAKE 选项
下表描述了 NMAKE 选项。 选项前面有斜杠 (/) 或破折号 (-),并且不区分大小写。 使用 !CMDSWITCHES 更改生成文件或 Tools.ini 中的选项设置。
| 选项 | 目的 | 
|---|---|
| /A | 强制所有评估目标的生成,即使与依赖项相比没有过时。 不强制生成不相关的目标。 | 
| /B | 即使时间戳相等,也强制生成。 仅推荐用于快速系统(两秒或更短的分辨率)。 | 
| /C | 抑制默认输出,包括非致命的 NMAKE 错误或警告、时间戳和 NMAKE 版权消息。 禁止显示由 /K发出的警告。 | 
| /D | 显示每个评估的目标和依赖的时间戳,并在目标不存在时显示消息。 可与 /P一起使用,以调试生成文件。!CMDSWITCHES用于为生成文件的某一部分设置或清除/D。 | 
| /E | 导致环境变量替代生成文件宏定义。 | 
| .'. . | 已弃用。 Windows 错误报告 (WER) 设置控制报告。 | 
| /F文件名 | 将文件名指定为生成文件。 空格或制表符可以位于文件名前面。 为每个生成文件指定一次 /F。 要从标准输入提供生成文件,请为生成文件指定破折号 (-),并使用 F6 或 CTRL+Z 结束键盘输入。 | 
| /G | 显示 !INCLUDE指令中包含的生成文件。 有关详细信息,请参阅生成文件预处理指令。 | 
| %> | 显示 NMAKE 命令行语法的简短摘要。 | 
| /I | 忽略所有命令的退出代码。 若要设置或清除 /I部分生成文件,请使用!CMDSWITCHES。 若要忽略生成文件部分的退出代码,请使用短划线 (-) 命令修饰符或.IGNORE。 如果同时指定,则将覆盖/K。 | 
| /K | 如果命令返回错误,则继续构建不相关的依赖项。 还发出警告并返回 1 的退出代码。 默认情况下,如果任何命令返回非零退出代码,NMAKE 将停止。 来自 /K的警告被/C禁止;如果两者都指定,则/I会覆盖/K。 | 
| /N | 显示但不执行命令;执行预处理命令。 不显示递归 NMAKE 调用中的命令。 用于调试生成文件和检查时间戳。 若要设置或清除 /N部分生成文件,请使用!CMDSWITCHES。 | 
| /NOLOGO | 禁止显示 NMAKE 版权消息。 | 
| /P | 将信息(宏定义、推理规则、目标、 .SUFFIXES列表)显示到标准输出,然后运行生成。 如果不存在生成文件或命令行目标,则仅显示信息。 与/D一起使用以调试生成文件。 | 
| /Q | 检查目标的时间戳;不运行生成。 如果所有目标都是最新的,则返回零退出代码,如果任何目标已过期,则返回非零退出代码。 执行预处理命令。 从批处理文件运行 NMAKE 时很有用。 | 
| /R | 清除 .SUFFIXES列表并忽略Tools.ini文件中定义或预定义的推理规则和宏。 | 
| /S | 禁止显示已执行的命令。 要禁止在生成文件的工件中显示,请使用 @命令修饰符或.SILENT。 若要设置或清除/S部分生成文件,请使用!CMDSWITCHES。 | 
| /T | 更新命令行目标(或第一个生成文件目标)的时间戳并执行预处理命令,但不运行生成。 | 
| /U | 必须与 /N一起使用。 转储内联 NMAKE 文件,以便/N输出可用作批处理文件。 | 
| /X文件名 | 将 NMAKE 错误输出发送到文件名而不是标准错误。 空格或制表符可以位于文件名前面。 要将错误输出发送到标准输出,请为文件名指定破折号 ( -)。 不影响从命令到标准错误的输出。 | 
| /Y | 禁用批处理模式推理规则。 选择此选项时,所有批处理模式推理规则都被视为常规推理规则。 | 
Tools.ini 和 NMAKE
NMAKE 在读取生成文件之前读取 Tools.ini,除非 /R 使用。 它会先在当前目录中查找 Tools.ini,然后在 INIT 环境变量指定的目录中查找。 初始化文件中的 NMAKE 设置部分以 [NMAKE] 开头,可以包含任何生成文件信息。 在以数字符号 (#) 开头的单独行中指定注释。
从 NMAKE 退出代码
NMAKE 返回以下退出代码:
| 代码 | 含义 | 
|---|---|
| 0 | 没有错误(可能是警告) | 
| 1 | 不完整生成(仅在使用 /K时发出) | 
| 2 | 程序错误,可能由以下问题之一引起: - 生成文件中的语法错误 - 命令中出现错误或退出代码 - 用户中断 | 
| 4 | 致命错误 - 内存不足 | 
| 255 | 目标不是最新的(仅当使用 /Q时发出) |