NMAKE.EXE 是Microsoft 程序维护实用工具,它是一个基于说明文件中包含的命令生成项目的工具。
命令语法如下:
NMAKE [option ...] [macros ...] [targets ...] [@commandfile ...]
说明:其中,options是NMAKE的选项,macros是在命令行中的宏定义,targets是NMAKE的目标文件列表,commandfile是包含命令行输入的文本文件(或响应文件)。
NMAKE 使用指定 /F 选项的Makefile(生成文件,通常名字是makefile);如果未指定 /F 选项,则使用当前目录下的Makefile。如果未指定Makefile,则 NMAKE 使用推理规则生成命令行 targets。
下表描述了 NMAKE 选项。选项前有斜杠 (/) 或短划线 (-),并且不区分大小写。使用 !CMDSWITCHES 更改生成文件或 Tools.ini 中的选项设置。
选项(忽略大小写):
1) /A 强制生成所有已评估的目标,即使这些目标相对于依赖项未过期。不强制不相关目标的生成;
2) /B 即使时间戳相等,也强制生成。建议只用于非常快的系统(解析为两秒或小于两秒)。
3) /C 取消默认输出,包括非致命的 NMAKE 错误或警告、时间戳以及 NMAKE 版权信息。取消 /K 选项发出的警告。
4) /D 当目标不存在时,显示每个已评估的目标、依赖项和消息的时间戳。与 /P 选项一起用于调试生成文件。使用 !CMDSWITCHES 设置或清除部分生成文件的 /D 选项;
5) /E 使环境变量可以覆盖预定义宏;
6) /F filename 指定 makefile 的名字。如果用“ - ”代替 filename ,则 NMAKE 从 STDIN 获取 makefile 的输入(对于键盘终端,用 F6 或 CTRL+Z 来结束输入)。可以指定多个 makefile ,每个 makefile 前都要有一个 /F 。
如果没有 /F 选项,则 NMAKE 会在当前目录查找一个名为 MAKEFILE (没后缀)的文件作为 makefile ,如果找不到,则对命令行目标文件使用推导规则。
7) /HELP 显示帮助;
8) /I 忽略所有命令的退出代码。若要设置或清除部分生成文件的 /I 选项,请使用 !CMDSWITCHES 。若要忽略部分生成文件的退出代码,请使用短划线 (-) 命令修饰符或 .IGNORE。如果两者都指定了,则重写 /K 选项;
9) /K 如果命令返回错误,则继续生成不相关的依赖项。同时发出警告并返回退出代码 1。默认情况下,如果有任一命令返回非零退出代码,NMAKE 将暂停。来自 /K 选项的警告被 /C 选项取消;如果两者都指定了,则 /I 选项重写 /K 选项;
10) /M 在 MS-DOS 下,将 NMAKE 程序交换到磁盘中,以腾出更多的内存。
11) /N 显示但不执行 makefile 中的命令(预处理命令除外),用于 DEBUG ;
12) /NOLOGO 禁止 NMAKE 版权信息;
13) /P 在执行 NMAKE 之前,将所有 NMAKE 信息输出到 STDOUT ,包括所有的宏定义, IR ,目标文件描述和 .SUFFIXES list 。如果打开 /P 选项,而且不指定任何目标文件,则 NMAKE 仅显示相关信息。
14) /Q 检查 target 和 dependent 的 time stamp ,但不执行 commands block 。如果目标文件为有效的,则返回 0 ,否则返回 255 。只有 makefile 中的预处理命令会被执行。当在批处理文件中调用 NMAKE 时,该选项会十分有用。
15) /R 清除 .SUFFIXES list ,忽略所有的 IR 和 TOOLS.INI 中定义的或预定义的宏。
16) /S 禁止 makefile 中所有的被执行指令的显示信息;
17) /T 将命令行中输入文件的 time stamp 改为当前时间,只执行预处理命令而不执行 commands block ,目标文件的内容不会被改变;
18) /V 当 NMAKE 被递归调用时,所有定义的宏都会被继承。在默认的情况下,只有在命令行中定义的宏和环境变量(实际上也是一个宏)是可以被继承的。
19) /X filename 将 NMAKE 的所有错误信息输出到 filename 指定的文件或设备中。如果用“ - ”代替 filename ,则错误信息会被输出到 STDOUT 。在默认情况下,错误信息输出到 STDERR 。该选项不会影响由 makefile 中的指令产生的到 STDERR 的输出。
20) / ? 显示 NMAKE 的语法和可用选项;