= 是最基本的赋值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
.c.o:
这句话的意思就是%.o : %.c
也就是说,所有的.o文件,依赖于对应的.c文件.c.o: //后缀规则。它告诉make 后面的命令 使用从.c文件生成.o
$* //目标文件除去后缀的部分, 如果目标是xx.o, 那么=xx
$< //依赖文件最左边的那个。如果依赖是 xx.c yy.c, 那么=xx.c 第一个依赖文件
这些字符/字符串包括
"$@",分别表示"target目标文件"
“$^”, “dependencies所有的依赖文件”,
"$<",, 和"first.dependency第一个依赖文件"。