在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
函数,我们可以方便地处理一组文件的扩展名转换或文件列表的获取。