一、常用基本符號
符號 |
含義 |
$@ |
目標文件 |
$^ |
所有依賴文件 |
$< |
第一個依賴文件 |
$? |
更新過的依賴文件 |
$() |
獲取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)逐次匹配,直到匹配完最後一個依賴文件爲止