makefile專題 變數的高階主題(上)

2021-08-15 10:59:32 字數 1167 閱讀 2601

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 去空格...