Makefile自动化变量笔记
$@
规则中的目标集合,在模式规则中,如果有多个目标的话,“$@”表示匹配模式中定义的目标集合。
$%
当目标是函数库的时候表示规则中的目标成员名,如果目标不是函数库文件,那么其值为空。
$<
依赖文件集合中的第一个文件,如果依赖文件是以模式(即“%” )定义的,那么“$<”就是符合模式的一系列的文件集合。
$?
所有比目标新的依赖目标集合,以空格分开。
$^
所有依赖文件的集合,使用空格分开,如果在依赖文件中有多个重复的文件,“$^”会去除重复的依赖文件,值保留一份。
$+
和“$^”类似,但是当依赖文件存在重复的话不会去除重复的依赖文件。
$*
这个变量表示目标模式中"%"及其之前的部分,如果目标是 test/a.test.c,目标模式为 a.%.c,那么“$*”就是 test/a.test。