makefile объединяет объекты в один каталог - PullRequest
0 голосов
/ 31 октября 2018

Недавно структура нашего проекта изменилась, и теперь у нас есть подкаталоги. Мой старый make-файл предполагал это и просто сказал:

SOURCES := $(wildcard $(SRCDIR)/*.cpp)
OBJECTS := $(SOURCES:$(SRCDIR)/%.cpp=$(OBJDIR)/%.o)

Теперь с произвольными глубокими вложенными каталогами оно изменилось на

SOURCES := $(wildcard $(SRCDIR)/**/*.cpp)

Но я все еще хочу, чтобы все объекты помещались в один и тот же каталог, как бы мне пришлось изменить определение OBJECTS (или скомпилировать?), Чтобы оно не завершалось сбоем, потому что указанные подкаталоги не существуют в каталоге объектов.

редактирование: Кто-то пометил это как дубликат Получение make для создания объектных файлов в определенной директории

Теперь меня спрашивают, как сказать, чем это отличается. Что я считаю оскорбительным, так как почему я должен предоставить причину, почему это дубликат. Тот, кто пометил это как дубликат, должен указать причину.

Я даже не знаю, с чего начать, почему он отличается. С тем же успехом вы могли бы связать меня с каким-нибудь вопросом Excel и спросить, почему он отличается.

Объясните мне, почему связанный вопрос должен отвечать на мой вопрос, и тогда я скажу вам, как это или нет.

1 Ответ

0 голосов
/ 01 ноября 2018

Нет проблем, просто используйте пару функций для работы с текстом :

OBJECTS := $(patsubst %.cpp,$(OBJDIR)/%.o,$(notdir $(SOURCES)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...