Объектный файл C ++ не перекомпилируется при внесении изменений в заголовочный файл - PullRequest
0 голосов
/ 28 марта 2019

У меня есть служебный заголовочный файл, в котором есть несколько встроенных функций. Когда я внесу изменение в тело функции, сохраню ее и переделаю, она будет перекомпилирована, но новые изменения не вступят в силу, хотя мои зависимые файлы перечислены в моем файле Makefile.

Я попытался скомпилировать его как объектный файл, как предварительно скомпилированный заголовок. Во многих аналогичных предложениях говорилось, что структура зависимостей неверна, но пока я включил ее в список зависимостей для моей цели, а файл заголовка был затронут не так давно, как цель была сгенерирована, ее следует перекомпилировать, верно?

run_tracker:    $(objects) run_tracker.o utils.h
                g++ -o $@ run_tracker.o $(objects) $(LIBS)

Скажите, что utils.h включает такую ​​функцию: void doSomething () {cout << "Doing Something" << endl;} </p>

У меня есть run_tracker, который вызывает функцию, а затем компилирует ее как обычно. Он печатает «Do Something», я изменяю эту строку на «Don't Do Something», make снова, он выполняет более короткую перекомпиляцию, а затем, когда я запускаю его снова, он печатает ту же вещь, что и ранее без изменений .

...