我有一个包含两个列表的Gnu Makefile:
LIST1=file01.cpp file02.cpp file03.cpp ......
LIST2=file10.cpp file11.cpp file12.cpp .....
我想编译每个文件,但是对于每个列表,我想使用不同的标志。
我可以为每个文件指定一个规则。还有更好的方法吗?
答案 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 $@
可能与你想要的很接近。