Правила шаблона Makefile - PullRequest
       2

Правила шаблона Makefile

1 голос
/ 16 марта 2012

Можно ли написать шаблонное правило, например:

%.o: %.c %.h
    <some action>

, чтобы оно принимало не один, а любое количество заголовков, потому что у меня есть:

main.o: main.c $(HEADERS)

, так что это не таксоответствует стандартному неявному правилу, поскольку из-за множества файлов .h, от которых зависит main.c, можно ли создать неявное правило, которое бы принимало такой ввод, или я должен просто написать

$(CC) $(CFLAGS) $(DEFINE_OPT) $(INCLUDE) -c  $<

явно

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Вы можете написать:

%.o: %.c $(HEADERS)

Однако, в общем, вы, вероятно, не хотите, чтобы все исходные файлы зависели от всех заголовочных файлов. Вы должны посмотреть на автоматическое создание списков предварительных условий; Инструкция по эксплуатации немного об этом говорит: http://www.gnu.org/software/make/manual/make.html#Automatic-Prerequisites.

0 голосов
/ 16 марта 2012

В GNUMake вы можете написать

main.o: $(HEADERS)

и встроенное неявное правило будет работать. Если вы хотите обрабатывать зависимости автоматически, Advanced Auto-Dependency Generation лучше, чем в руководстве GNUMake.

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