运行 NMAKE

语法

NMAKE [option ...] [macros ...] [targets ...] [@command-file ...]

备注

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 filename 文件名指定为生成文件。 空格或制表符可以位于文件名前面。 为每个生成文件指定一次 /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 filename 将 NMAKE 错误输出发送到文件名而不是标准错误。 空格或制表符可以位于文件名前面。 要将错误输出发送到标准输出,请为文件名指定破折号 (-)。 不影响从命令到标准错误的输出。
/Y 禁用批处理模式推理规则。 选择此选项时,所有批处理模式推理规则都被视为常规推理规则。

Tools.ini 和 NMAKE

NMAKE 在读取生成文件之前读取 Tools.ini,除非 /R 使用。 它会先在当前目录中查找 Tools.ini,然后在 INIT 环境变量指定的目录中查找。 初始化文件中的 NMAKE 设置部分以 [NMAKE] 开头,可以包含任何生成文件信息。 在以数字符号 (#) 开头的单独行中指定注释。

从 NMAKE 退出代码

NMAKE 返回以下退出代码:

代码 含义
0 没有错误(可能是警告)
1 不完整生成(仅在使用 /K 时发出)
2 程序错误,可能由以下问题之一引起:
- 生成文件中的语法错误
- 命令中出现错误或退出代码
- 用户中断
4 致命错误 - 内存不足
255 目标不是最新的(仅当使用 /Q 时发出)

另请参阅

NMAKE 参考