本文介绍了makefile上的patsubst的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我必须使用各种CFLAGS从同一组* .c创建不同的* .o文件.我想使用patsubst从同一* .c生成不同的* .o文件.我在下面的语句中做错了,请帮忙(我想从同一组c源文件中生成一组具有($
I have to create different *.o files from a same set of *.c using various CFLAGS. I wanted to use patsubst to generate different *.o files from same *.c. I am doing something wrong the following statement, please help (I want to generate one set of object files having ($<)_O0.o and the other ($<)_O2.o from the same set of c source files):
$(CC) $(CFLAGS_02) -c $< -o $(patsubst %.c,%_O2.o,$<)
谢谢
推荐答案
使用patsubst列出要构建的对象的列表,然后对每种类型的构建使用单独的规则.
Use patsubst to make lists of the objects that you want to build, and then use separate rules for each type of build.
类似这样的东西:
SRC_FILES = source1.c source2.c
OBJ_FILES_O0 = $(patsubst %.c,%_O0.o,$(SRC_FILES))
OBJ_FILES_O2 = $(patsubst %.c,%_O2.o,$(SRC_FILES))
CFLAGS_O0 := -O0
CFLAGS_O2 := -O2
all: $(OBJ_FILES_O0) $(OBJ_FILES_O2)
$(OBJ_FILES_O0): %_O0.o: %.c
$(CC) $(CFLAGS_O0) -c $< -o $@
$(OBJ_FILES_O2): %_O2.o: %.c
$(CC) $(CFLAGS_O2) -c $< -o $@
这篇关于makefile上的patsubst的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!