我可以使用@if exists 来测试文件是否存在,但没有通过谷歌找到该文件。例如,在我的 makefile 中为 nmake ;
clean:
@if exist $(BIN_DIR) rmdir /S /Q $(BIN_DIR)
@if exist $(OBJ_DIR) rmdir /S /Q $(OBJ_DIR)
我可以使用@if exists 来测试文件是否存在,但没有通过谷歌找到该文件。例如,在我的 makefile 中为 nmake ;
clean:
@if exist $(BIN_DIR) rmdir /S /Q $(BIN_DIR)
@if exist $(OBJ_DIR) rmdir /S /Q $(OBJ_DIR)
您不会在 nmake 文档中找到任何有关“@if 存在”的文档。这些是普通的 shell 命令。
因此,只需打开一个 cmd 窗口并在提示符下输入“help if”。顺便说一句,“@”符号抑制了 shell 脚本中的回声。
这就是为什么大多数.bat
脚本都以“@echo off”开头的原因。
你可以在这里找到 nmake 文档(我很惊讶你没有找到它):
与 2012 年相比:
http://msdn.microsoft.com/en-us/library/dd9y37ha.aspx
与 2010 年相比:
http://msdn.microsoft.com/en-us/library/dd9y37ha(v=vs.100).aspx
与 2008 年相比:
http://msdn.microsoft.com/en-us/library/dd9y37ha(v=vs.90).aspx
早期版本也可用,但 nmake 没有太大变化。
使用 $(VARNAME) 语法访问的变量要么是环境变量,要么是在 makefile 本身中声明的变量。
这是一个非常简单的makefile,它声明了一个变量,单个规则(ALL)输出PATH(来自环境)然后是本地声明的变量。
MY_VAR=12345
ALL:
@echo $(PATH) $(MY_VAR)