Make-файл: Эффективный способ сделать весь '.c' файлами зависит от заголовочного файла с тем же именем?

У меня есть каталог с 50 .c исходные файлы и каждый из них .c файлы зависят от a .h файл с тем же именем плюс общий заголовочный файл.

Пример:

foo.c depends on foo.h and common.h
bar.c depends on bar.h and common.h
baz.c depends on baz.h and common.h

Действительно ли возможно установить эту зависимость, не имея необходимость делать отдельную цель для каждого.c файла?

В случае, если это имеет значение, окончательный вывод этого Make-файла будет a libfoo.a библиотека, содержащая каждый из них .o файлы.

Править

Если бы вообще возможный я хотел бы сделать это с gnu make синтаксис и не имеет цель для каждого файла, была ли та цель создана вручную или чем-то как makedepend.

6
задан SiegeX 25 June 2010 в 19:33
поделиться

2 ответа

Насколько я знаю, этого должно хватить.

%.o: %.c %.h common.h
\tgcc -c $<

\ t - это вкладка, а gcc -c $ <, конечно, просто пример.

10
ответ дан 8 December 2019 в 17:18
поделиться
OBJECTS = $(patsubst %.c,%.o,$(wildcard *.c))
%.o: %.c %.h common.h
    gcc -c $< -o $@

libfoo.a: $(OBJECTS)
    ar rcs $@ $^
4
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: