Makefile
1 每一个命令行必须以[Tab]字符开始,[Tab]字符告诉make此行是一个命令行。make按照命令完成相应的动作。这也是书写Makefile中容易产生,而且比较隐蔽的错误。
2 commands can not commence before first target
[Tab]echo Hello
all:
[Tab]gcc –o tt tt.c
提示错误:Commands commence before first target
3 Debug 和 Release
makefile定义如下:
ifdef debug
CFG := -g
endif
make CFG=any_expressions 打开debug
另一种用法:
命令:make CFG=DEBUG make CFG=RELEASE
makefile:
if(eq(CFG, DEBUG))
endif
if(eq(CFG, RELEASE))
endif
4 变量定义与使用
定义:var_name=
使用:$(var_name)
5 伪目标
通过“.PHONY”特殊目标将“clean”目标声明为伪目标。防止当磁盘上存在一个名为“clean”文件时,“clean”所在规则的命令无法执行。在命令行之前使用“-”,意思是忽略命令“rm”的执行错误
.PHONY : clean
clean :
-rm edit $(objects)