Gnu Make有两个文件列表

时间:2015-10-11 05:46:19

标签: list makefile

我有一个包含两个列表的Gnu Makefile:

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

我想编译每个文件,但是对于每个列表,我想使用不同的标志。

我可以为每个文件指定一个规则。还有更好的方法吗?

1 个答案:

答案 0 :(得分: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 $@

可能与你想要的很接近。