Я пытаюсь написать make-файл для всех моих ppp-проектов. После поиска из Интернета, я сделать Makefile, как показано ниже:
makefile: как указать файлы заголовков
g++11=g++ -std=c++11 -stdlib=libc++
CPPFILES=$(wildcard *.cpp)
OBJFILES=$(CPPFILES:.cpp=.o)
res.out: $(OBJFILES)
$(g++11) -lncurses -o [email protected] $^ -g
#obj/%.o: %.cpp
%.o: %.cpp
$(g++11) -c -o [email protected] $< -g
clean:
rm *.o *.out
Я пытался использовать этот файл для компиляции моих CPP проектов, и она работала хорошо.
Однако, когда я вношу некоторые изменения в файлы заголовков, он больше не работает, потому что этот make-файл не может обнаружить модификацию в файлах заголовков.
Есть ли простой способ указать заголовочные файлы в make-файле?
Ofc Я не хочу указывать их по одному.
Посмотрите "сделать автогенерацией зависимость" – Peter
Вы можете добавьте файлы заголовков в качестве зависимости для правила '.o". –
@Thomas Matthews - кроме того, чтобы заставить OP «указывать их один за другим», что он не хочет делать, что также заставляет полностью перестраивать всякий раз, когда изменяется любой файл заголовка, включая единицы компиляции, которые не зависят от измененного заголовок. Генерация автоматической зависимости использует компилятор (фактически препроцессор) для создания списка зависимостей на основе '# include' в исходных файлах, поэтому изменение заголовка приводит к перекомпиляции объектов, зависящих от него. – Peter