如何使用相同的文件生成不同的对象

时间:2011-03-04 14:02:15

标签: makefile

我正在尝试修改Makefile,但我找不到该规则。

以下不起作用。我不知道如何将src写入obj规则。

# foo.c bar.c main.c
SRC = $(wildcard *.c)
OBJ_1 = $(patsubst %.c,%_1.o,$(SRC))
OBJ_2 = $(patsubst %.c,%_2.o,$(SRC))

GCC1 = vtcc
GCC2 = vtcc

LD_FLAGS= -lm -lpthread 

all: a1 a2

# executables :
a1: $(OBJ_1)
    $(GCC1) $(LDFLAGS) $^ -o $@
a2: $(OBJ_2)
    $(GCC2) $(LDFLAGS) $^ -o $@

# objects :
$(OBJ_1) : $(SRC)
    $(GCC1) -c $< -o $@

$(OBJ_2) : $(SRC)
    $(GCC2) -c $< -o $@

1 个答案:

答案 0 :(得分:1)

很难说出你的问题是什么,但我认为最后两条规则应该是:

# objects :
$(OBJ_1) : %_1.o : %.c
    $(GCC1) -c $< -o $@

$(OBJ_2) : %_2.o : %.c
    $(GCC2) -c $< -o $@