介紹幾個常用的makefile函式

2022-09-03 09:24:11 字數 1325 閱讀 5470

addprefix.

$(addprefix , )

功能:把加到name序列中的每乙個元素前面。

result = $(addprefix %., c cpp

)test:

@echo $(result)

輸出:%.c %.cpp

addsuffix 用法與addprefix相同,只是乙個是字首,乙個是字尾。

if.

$(if

, ,)

功能:引數是 if的表示式,如果其返回的為非空字串,那麼這個表示式就相當於返回真,於是,會被計算,返回計算結果字串;否則會被計算,返回計算結果字串。可以省略。

suffix :=result1 := $(if $(suffix), $(addprefix %.,$(suffix)), %)

suffix := c cpp

result2 := $(if $(suffix), $(addprefix %.,$(suffix)), %)

test:

@echo result1 is $(result1)

@echo result2 is $(result2)

輸出:

result1 is %result2 is %.c %.cpp

wildcard.

$(wildcard )

功能:展開pattern中的萬用字元

$(wildcard src/*

)

輸出:得到src目錄下的檔案列表

filter.

$(filter , )

功能:以模式過濾字串中的單詞,保留符合模式的單詞。可以有多個模式。

$(filter %.c %.cpp, $(wildcard src/*

))

輸出:src目錄下所有字尾是.c和.cpp的檔案序列。

call.

$(call ,,,...)

功能:中有$(1),$(2)這種佔位符,call函式使用,來替換$(1),$(2),並計算表示式的值,返回結果字串。

listfile  = $(filter $(if $(2),$(addprefix %.,$(2)),%), \

$(wildcard $(addsuffix $(slash)*, $(1

))))

list_cc = $(call listfile, src, c cpp)

輸出:src目錄下所有字尾是.c和.cpp的檔案序列

linux常用的幾個系統介紹

linux常用的幾個系統介紹 199cloud 艾娜 ubuntu ubuntu近些年的粉絲越來越多,ubuntu有著漂亮的使用者介面,完善的包管理系統,強大的軟體源支援,豐富的技術社群,ubuntu還對大多數硬體有著良好的相容性,包括最新的圖形顯示卡等等。這一切讓ubuntu越來越向大眾化方向發展...

linux常用的幾個系統介紹

linux常用的幾個系統介紹 199cloud 艾娜 ubuntu ubuntu近些年的粉絲越來越多,ubuntu有著漂亮的使用者介面,完善的包管理系統,強大的軟體源支援,豐富的技術社群,ubuntu還對大多數硬體有著良好的相容性,包括最新的圖形顯示卡等等。這一切讓ubuntu越來越向大眾化方向發展...

Linux幾個常用目錄介紹

bin 存放的是一些二進位制檔案,但是在linux中二進位制檔案中是可以被執行的,這個目錄的命令檔案是給普通使用者使用的 etc linux下所有的配置檔案都會放這個目錄 home 是所有非root使用者家目錄 root root使用者的家目錄 sbin 同樣類似 bin目錄,也存放一些二進位制檔案...