在 Makefile 中,$(addprefix prefix,names…) 是一个函数,用于将指定的前缀添加到一组空格分隔的文件名中。这个函数通常用于将相同的前缀添加到一组文件名或路径中,非常适合在 Makefile 中进行路径拼接操作。
语法:
makefile
Copy Code
$(addprefix prefix,names...)
参数:
prefix:要添加的前缀。
names…:一组空格分隔的文件名或路径。
示例:
makefile
Copy Code
SOURCES := file1.c file2.c file3.c
OBJS := $(addprefix obj/,$(SOURCES:.c=.o))
在这个例子中, ( a d d p r e f i x o b j / , (addprefix obj/, (addprefixobj/,(SOURCES:.c=.o)) 将会在 SOURCES 变量中的每个文件名后面添加 obj/ 前缀,并将处理后的结果赋值给 OBJS 变量。最终得到的 OBJS 变量的值为 “obj/file1.o obj/file2.o obj/file3.o”。
另一个示例:
makefile
Copy Code
VPATH := src include
SRC := $(addprefix $(VPATH)/,file1.c file2.c file3.c)
在这个示例中,$(addprefix $(VPATH)/,file1.c file2.c file3.c) 将会在 file1.c file2.c file3.c 的每个文件名前面添加 $(VPATH)/ 前缀,从而构建出完整的路径。
总之,$(addprefix prefix,names…) 函数在 Makefile 中非常有用,可以帮助我们将指定的前缀添加到一组文件名或路径中,实现灵活的路径拼接和文件处理。