Сделать зависимость заголовка файла от файла - PullRequest
2 голосов
/ 22 марта 2011

Я хочу добавить зависимость файла заголовка в make file

Я написал правило

 ${OBJECTDIR}/%.o: %.cc %.h
 gcc  $(WarningLevel)  $(CFLAGS) $(INCLUDES)  -c  -o $@  $^

но есть две ошибки

Один для файла .cc, у которого нет файлов .h. Это не даст никаких правил. Второй - сборка объектного файла по правилу выдачи ошибки при связывании

file format not recognized; treating as linker script

как мне этого достичь? (исходный файл должен быть скомпилирован, если изменен заголовочный файл)

Ответы [ 2 ]

2 голосов
/ 22 марта 2011

Прежде всего, вы не показали нам свою команду ссылки. Во-вторых, вы не должны использовать $^ здесь. $^ расширяется до списка всех зависимостей (здесь .c и .h), но мы хотим только скомпилировать файл .c. Используйте $<, который расширяется только до имени первой зависимости:

${OBJECTDIR}/%.o: %.c %.h
        gcc $(WarningLevel) $(CFLAGS) $(INCLUDES) -c -o $@ $<
1 голос
/ 22 марта 2011

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

%.h:
    echo This is my build target for header files.

Make на самом деле ничего не делает с файлами% .h, но, по крайней мере, вы просите его следить за изменениями файлов (которые затем приводят к необходимости перекомпиляции файлов .o).

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