patsubst和wildcard是Makefile中常用的兩個函數,下面是它們的使用小結:
語法:$(patsubst pattern,replacement,text)
示例:
files := src/main.c src/utils.c src/test.c
objects := $(patsubst src/%.c,obj/%.o,$(files))
# 上述代碼中,將src目錄下的.c文件替換為obj目錄下的.o文件
# 結果為:objects = obj/main.o obj/utils.o obj/test.o
語法:$(wildcard pattern)
示例:
files := $(wildcard src/*.c)
# 上述代碼中,獲取src目錄下所有的.c文件列表
# 結果為:files = src/main.c src/utils.c src/test.c
總結:patsubst和wildcard函數是Makefile中常用的字符串處理函數。patsubst函數用于替換模式匹配字符串,可以將指定模式的字符串替換為指定的字符串;wildcard函數用于獲取滿足通配符模式的文件列表。在Makefile中,這兩個函數可以幫助我們簡化文件路徑的處理和文件列表的獲取。