Объединение общих зависимостей с конкретными зависимостями - PullRequest
1 голос
/ 13 марта 2019

Можно ли поместить в make-файл обе общие зависимости, такие как:

%.o: %.c

и конкретные зависимости, такие как:

Tree.o: Leaf.h
Rectangle.o: Point.h

Окончательный результат должен состоять в том, что Tree.o зависит как от Tree.c и Leaf.h, так и Rectangle.o зависит как от Rectangle.c и Point.h.

Где именно я должен поместить команду компиляции в этом случае - ниже общей зависимости или конкретных зависимостей?

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Ответ - да, вы можете.И вы обычно добавляете свой рецепт к зависимости с участием исходного файла;это дает вам доступ к наиболее полезным переменным make auto ($<: первое предварительное условие - исходный файл и $@: целевой объектный файл):

%.o: %.c
    $(CC) $(CFLAGS) -c -o $@ $<

foo.o: foo.h
1 голос
/ 13 марта 2019

Зависимости увеличиваются таким образом, только если они не являются частью рецепта, поэтому вы не должны добавлять никаких команд в этом случае.Фрагменты make-файла в вашем вопросе, по сути, являются правильным способом сделать это.См. Несколько правил для одной цели в руководстве по сборке GNU.

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