目标与依赖
1.1定义
目标:是要生成的或操作的命令的索引
依赖:是生成目标依赖的文件或目录
1.2解析
示例
all_variable main.o 1.o 2.o
main:$(all_variable)
gcc -o main $(all_variable)
在实例程序种目录即为main,而依赖则是all_variable这个文件集合(文件目录),
我们目标是生成一个可执行文件取名为main,而生成目标文件需要依赖文件目录于是我
们便定义了all_variable这个变量。
自动化变量
2.1 定义
$@———规则中的目标集合,在模式规则中,如果有多个目标的话,“$@”表示匹配模 式中定义的目标集合。
$%———当目标是函数库的时候表示规则中的目标成员名,如果目标不是函数库文件, 那么其值为空。
$<——— 依赖文件集合中的第一个文件,如果依赖文件是以模式(即“%”)定义的,那么 “$<”就是符合模式的一系列的文件集合。
$?——— 所有比目标新的依赖目标集合,以空格分开。
$^———所有依赖文件的集合,使用空格分开,如果在依赖文件中有多个重复的文件, “$^”会去除重复的依赖文件,值保留一份。
$+ ———和“$^”类似,但是当依赖文件存在重复的话不会去除重复的依赖文件。
$* ———这个变量表示目标模式中"%"及其之前的部分,如果目标是 test/a.test.c,目标模 式为 a.%.c,那么“$*”就是 test/a.test。