一、常用基本符号
符号 |
含义 |
$@ |
目标文件 |
$^ |
所有依赖文件 |
$< |
第一个依赖文件 |
$? |
更新过的依赖文件 |
$() |
获取Makefile中定义的变量的值 |
% |
通配符,当前Makefile中的所有xxx,如:%.c表示所有.c文件 |
.phony |
|
clean |
伪目标:可以使用make clean执行该目标后面的语句 |
= |
|
:= |
|
+= |
追加赋值 |
?= |
|
1.1 实例1:$@ 和 $^
test.o : test.c test.h head.h
gcc -o $@ $^
其中:
$@:表示test.o
$^:表示test.c test.h head.h这三个文件
1.2 实例2:$<
test.o : test.c
gcc -o $@ $<
其中
$@:同上
$<:表示test.c
1.3 实例3:%
all: test1.o test2.o
%.o : %.c
gcc -o $@ $<
其中:
注意1、Makefile规则是找第一个没有通配符的规则,也就是会找到all,发现有两个依赖,
注意2、那么看到这个%,就会在all那个规则中查找依赖文件,并逐次匹配,一次匹配一个,如:
(1)第一次匹配到test1.o,则%就表示test1,那么对应%.c就是test1.c
(2)第二次匹配到test2.o,则%就表示test2,那么对应%.c就是test2.c
(3)逐次匹配,直到匹配完最后一个依赖文件为止