在makefile中,patsubst
和wildcard
是兩個常用的函數。
patsubst
函數的語法為:$(patsubst pattern,replacement,text)
它將text
中符合pattern
模式的部分替換為replacement
字符串,并返回替換后的結果。其中,pattern
可以包含通配符%
。
例如,假設我們有一個變量OBJS
保存了一組目標文件名,我們可以使用patsubst
函數將.c
文件名替換為.o
文件名:
OBJS = main.c foo.c bar.c
OBJS_O = $(patsubst %.c,%.o,$(OBJS))
這樣,$(OBJS_O)
的值將為main.o foo.o bar.o
。
wildcard
函數的語法為:$(wildcard pattern)
它返回符合pattern
模式的文件列表。
例如,假設我們有一個目錄中包含了一組.c
文件,我們可以使用wildcard
函數來獲取這些文件的列表:
SRCS = $(wildcard src/*.c)
這樣,$(SRCS)
的值將為src/main.c src/foo.c src/bar.c
。
綜合使用patsubst
和wildcard
函數,我們可以方便地處理一組文件的擴展名轉換或文件列表的獲取。