2015-10-11 30 views
0

讓我有一個GNU Makefile中有兩個列表:牛羚有兩個文件列表

LIST1=file01.cpp file02.cpp file03.cpp ...... 
LIST2=file10.cpp file11.cpp file12.cpp ..... 

我想要編譯每個文件,但對於每個列表我要使用不同的標誌。

我可以爲每個文件指定一個規則。有沒有更好的辦法?

回答

0

您可以在目標基礎上聲明make變量。所以:

LIST1=file01.cpp file02.cpp file03.cpp ...... 
LIST2=file10.cpp file11.cpp file12.cpp ..... 
OBJ1 = $(patsubst %.cpp,%.o,$(LIST1)) 
OBJ2 = $(patsubst %.cpp,%.o,$(LIST2)) 

$(OBJ1): CXXFLAGS = <flags-for-list1> 

$(OBJ2): CXXFLAGS = <flags-for-list2> 

all: $(OBJ1) $(OBJ2) 
$(OBJ1) $(OBJ2): %.o: %.cpp 
    $(CXX) -c $(CXXFLAGS) $< -o [email protected] 

可能接近你想要的。

+0

謝謝。我沒有足夠的聲望來提高分數 –

+0

但是,您可以接受答案,它也有助於將問題過濾爲「已答覆」。 –