Makefile: посторонний неявный объектный файл - PullRequest
0 голосов
/ 07 февраля 2020

Рассмотрим следующее простое правило Makefile

target : objDir/target.o
    (...recipe...)

objDir/target.o : target.c
    (...recipe...)

Я хочу сгенерировать target.o в специально выделенном каталоге.

Но этот рецепт не удастся. Потому что при вызове make target он попытается сгенерировать оба значения objDir/target.o И target.o, а затем на этапе соединения произойдет сбой из-за дублирования символов.

Похоже, что target.o является неявным зависимость, даже если она никогда не была указана в списке, и список не является пустым. target.o может быть удовлетворено, поскольку target.c существует в том же каталоге.

Так что я могу придумать несколько сложных способов избавиться от проблемы, переименовав исходный файл или изменив имя target, чтобы делегирование некоторому суб-Makefile началось из другого каталога, но ни один из них не чувствует себя удовлетворительным.

Вопрос в следующем: есть ли способ сказать make НЕ принимать target.o зависимость для target target?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...