2011-03-04 37 views
0

我想修改一個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 [email protected] 
a2: $(OBJ_2) 
    $(GCC2) $(LDFLAGS) $^ -o [email protected] 

# objects : 
$(OBJ_1) : $(SRC) 
    $(GCC1) -c $< -o [email protected] 

$(OBJ_2) : $(SRC) 
    $(GCC2) -c $< -o [email protected] 

回答

1

很難告訴你的問題是什麼,但我覺得最後兩個規則應該是:

# objects : 
$(OBJ_1) : %_1.o : %.c 
    $(GCC1) -c $< -o [email protected] 

$(OBJ_2) : %_2.o : %.c 
    $(GCC2) -c $< -o [email protected] 
+0

葉氏,原來如此!對於非問題抱歉,這是一天的結束,我重複了幾次這個問題,在一個改寫中刪除它。 – 2011-03-08 09:00:29

相關問題