Thursday, February 11, 2021

Makefile - 變數使用

 變數宣告時要使用 = 或 := 給予初始值 (注意兩者在代換時稍有不同),如 obj = hello.o foo.o,取用時寫成 

(obj){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

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能