В нижеприведенном фрагменте Makefile обычный способ makefile ведет себя, когда foo.o имеет указанную здесь зависимость, например, /tmp/foo.o: abc.o xyz.o lmn.o и т. Д., Тогда во время разбора make к правилу, в котором перечислены, как сделать зависимость (abc.o xyz.o lmn.o), но здесь целевой /tmp/foo.o не указал никакой зависимости, даже тогда, как выполняется следующая строка или просто игнорируется.Makefile с перечислением зависимостей
Пожалуйста, объясните это как можно скорее, как и почему эта строка (% .o: $$ (addeduffix /%.c,foo bar) foo.h) выполнена. Любая помощь с телом очень ценится. Мне это нужно из-за моей лекции о make-файле.
.SECONDEXPANSION:
/tmp/foo.o:
% .o: $$ (addsuffix /%.c,foo бар) foo.h @echo $^
Спасибо за ответ sir !!!!!!!!!!!! но мой вопрос состоял в том, что у цели есть пустой список и нет явного правила, а затем следующая строка, следующая за правилом шаблона, например, в этом случае «целевое foo.o: не имеет списка зависимостей и не имеет явного правила», тогда make автоматически будет для% .o: правило или оно игнорируется. Это то, что я хочу знать, объясните, пожалуйста. –
@Beta, как для 'Это своеобразный makefile'. Этот make-файл находится из make doc: http://www.gnu.org/software/make/manual/html_node/Secondary-Expansion.html, пункт ** Вторичное расширение неявных правил ** –
да, сэр !!!! Это из документов, но в лекции это точка отсчета. Поэтому, пожалуйста, объясните приведенный выше вопрос, что если у цели нет списка зависимостей и нет явного правила и правила шаблона, тогда make автоматически рассматривает правило шаблона для цели или для этого существует какой-то другой механизм. –