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