Makefile怎么把多个目录下的.cpp文件编译到指定目录?
MakeFile如下:
# 获得所有CPP文件,如 a/b/c.pp d/e.cpp ./f.cpp
SourceFiles := $(shell find . -name *.cpp)
Objs := $(SourceFile: .cpp=.o)
# 要把.o文件生成到obj目录
ObjDir := obj
Objs := $(notdir $(Objs))
Objs := $(addprefix $(ObjDir)/, $(Objs)) # 目标文件:obj/a.o obj/e.o obj/f.o
.PHONY : all
all: $(Objs)
%.o : $(filter %.cpp,$(SourceFiles))
$(CXX) $(CXXFLAGS) -o $@ -c $<
问题来了,我尝试从目标文件映射会源文件路径,但是filter函数把 %.cpp 识别为一个模式了,$(filter %.cpp,$$(SourceFiles)) 实际上匹配到的是以.cpp结尾的文件,所以返回了$(SourceFiles),求问大神有没有办法达到我想要的目的呀,或者别的方法也行