makefile将对象展平到一个目录

时间:2018-10-31 17:25:37

标签: makefile

最近,我们的项目结构发生了变化,现在我们有了子目录。我以前的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问题,并问我为什么不同。

请向我解释为什么链接的问题可以回答我的问题,然后我将告诉您它是怎么回事。

1 个答案:

答案 0 :(得分:1)

没问题,只需使用几个text manipulation functions

OBJECTS := $(patsubst %.cpp,$(OBJDIR)/%.o,$(notdir $(SOURCES)))
相关问题