最近,我们的项目结构发生了变化,现在我们有了子目录。我以前的makefile假设是这样,
SOURCES := $(wildcard $(SRCDIR)/*.cpp)
OBJECTS := $(SOURCES:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)
现在有了任意的深层嵌套目录,它已更改为
SOURCES := $(wildcard $(SRCDIR)/**/*.cpp)
但是我仍然希望所有对象都位于同一目录中,如何更改OBJECTS(或compile?)定义,以使其不会失败,因为给定的子目录在objectdirectory中不存在。 / p>
编辑: 有人将其标记为与 Getting make to create object files in a specific directory
现在我被问到这有什么不同。我觉得这很侮辱,因为我为什么要提供为什么这是重复的原因。标记为重复的人应提供原因。
关于它为何与众不同,我什至不知道从哪里开始。您也可能将我链接到一些excel问题,并问我为什么不同。
请向我解释为什么链接的问题可以回答我的问题,然后我将告诉您它是怎么回事。
答案 0 :(得分:1)
没问题,只需使用几个text manipulation functions:
OBJECTS := $(patsubst %.cpp,$(OBJDIR)/%.o,$(notdir $(SOURCES)))