cc := gcc
target := hello.out
objs := func.o main.o const.o
$(target) : $(objs)
$(cc) -o $@
$^$(objs) : %.o : %.c
$(cc) -o $@ -c $^
.phony : clean rebuild all
rebuild : clean all
all : $(target)
clean :
$(rm) *.o $(target)
x := y
y := z
a := $($(x))
test1 :
echo "$(a)"
輸出結果:
$ make test1
echo
"z"z
hm := hello makefile
test :
echo
"hm => $(hm)"
輸出結果:
$ make test hm:=cmd
echo
"hm => cmd"
hm => cmd
override hm := hello makefile
test :
echo
"hm => $(hm)"
輸出結果:
$ make test hm:=cmd
echo
"hm => hello makefile"
hm => hello makefile
宣告:此文章為本人在學習狄泰軟體學院《十二月提公升計畫》所做的筆記,參考書籍《專業嵌入式軟體開發》——李雲,文章中包含狄泰軟體資料內容和《專業嵌入式軟體開發》資料內容,一切版權歸狄泰軟體和《專業嵌入式軟體開發》所
makefile專題 變數與函式的綜合示例
1 自動生成target資料夾存放可執行檔案 2 自動生成objs資料夾存放編譯生成的目標檔案 o 3 支援除錯版本的編譯選項 4 考慮 的擴充套件性 wildcard parrern 獲取當前工作目錄中滿足 pattern的檔案或目錄列表 addprefix prefix,names 給名字列表 ...
Linux之Makefile(變數高階用法)
我們可以替換變數中的共有的部分,其格式是 var a b 或是 其意思是,把變數 var 中所有以 a 字串 結尾 的 a 替換成 b 字串。這裡的 結尾 意思是 空格 或是 結束符 還是看乙個示例吧 foo a.o b.o c.o bar foo o c 這個示例中,我們先定義了乙個 foo 變數...
Makefile語法高階
迴圈條件 其他makefile基本語法 呼叫子makefile 類似函式 關鍵字有 ifeq,ifneq,ifdef,ifndef ifeq cc gcc cc o else cc o xx xx endif函式 含義 subst 字串替換函式 patsubst 模式字串替換函式 strip 去空格...