本文介绍了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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 19:56