Инкрементная сборка - перестраивать файл.o только при изменении файла.c или.h с использованием файла зависимостей.d

Мой make-файл в настоящее время работает нормально, так как он создает файлы.o для всех файлов.c в разных каталогах и создает исполняемый файл. Если я делаю изменения в любом файле.c, то после сборки он просто компилирует только те измененные файлы.c. Это отлично. Но если я внесу изменения в любой файл.h, то все зависимые файлы.c должны быть перестроены. Но это не так, поскольку файл зависимостей генерируется, но не сопоставляется с ним. Поэтому, пожалуйста, помогите мне сделать это.

У меня есть файлы зависимостей (.d) в выходном каталоге. Я хочу, чтобы он соответствовал цели в главном make-файле, чтобы при изменениях в любом файле.h, зависимый файл.c был перезапущен. Это какая-то часть моего кода...

это мой код конверсии.c в.o:

%.$(OBJ_FILE_SUFFIX) : %.$(C_FILE_SUFFIX)
    @echo ********************************************************
    @echo Compiling $< ...
    @echo Generating $(OBJECT_OUTPUT_PATH)/$@ ...
    @$(CC) $(CFLAGS) $(C_DEF_PARAM) @$(INCLUDE_PATHS_FILE) $< -o $(OBJECT_OUTPUT_PATH)/$@
    @echo Done ...

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

0 ответов

Другие вопросы по тегам