變數宣告時要使用 = 或 := 給予初始值 (注意兩者在代換時稍有不同),如 obj = hello.o foo.o,取用時寫成
{obj}。如果我們想定義一些比較類似的文件,可以使用 Unix-like 的 * , ? 和 ~ 。一個範例如下:
在一些 make 中常使用自動化變數來簡寫規則(讓 makefile 難讀):
- $@:目前的目標項目名稱。
- $<:代表目前的相依性項目。
- $*:代表目前的相依性項目,但不含副檔名。
- $?:代表需要重建(被修改)的相依性項目。
另外在 makefile 規則中所用的萬用配對字元是% ,因此一個使用各種變數代換技巧的 makefile 可能如下例所示:
CC:=gcc exe:=main obj:=main.o a.o b.o c.o all:$(obj) $(CC) -o $(exe) $(obj) %.o:%.c $(CC) -c $^ -o $@ .PHONY:clean clean: rm -rf $(obj) $(exe)
No comments:
Post a Comment