Makefile中特殊字符和关键字
1. 特殊字符
*
:表示目标文件的名称,不包含目标文件的扩展名。+
:表示所有的依赖文件,这些依赖文件之间以空格分开,按照出现的先后为顺序,其中可能包含重复的依赖文件。<
:表示依赖项中第一个依赖文件的名称。?
: 依赖项中,所有目标文件时间戳晚的文件(表示修改过),依赖文件间以空格分开。@
:目标项中目标文件的名称。^
:依赖项中,所有不重复的依赖文件,以空格分开。
2. 关键字
2.1 .Phony
.Phony
是一个特殊的工作目标,它后面的并不是一个实际文件名:只是在显式请求时执行命令的名字;而且肯定要视为未更新。使用 .Phony
的原因在于:
-
避免和同名文件冲突(防止存在和
PHONY
执行目标的名称相同的文件) -
改善性能(已知
.Phony
目标并非是由其它文件生成的实际文件,make
会跳过隐含规则搜索)
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!