Почему make-файл каждый раз перекомпилирует класс?
Вот мой makefile
all: main.o fileparam.o
g++ -g $(LIBPATH) $(LIBS) file_parameters.o main.o -o test
main.o: main.cpp
g++ -g -Wall $(INCPATH) main.cpp -c
fileparam.o: file_parameters.cpp file_parameters.h
g++ -g -Wall file_parameters.cpp -c
$ (LIBPATH) $ (LIBS) указывает на включаемые библиотеки, а $(INCPATH) указывает на другие включаемые файлы
По какой-то причине он перекомпилирует file_parameters.o каждый раз, когда я создаю программу, и мне было интересно, где я облажался. Спасибо!
Редактировать: он не перекомпилирует main.o каждый раз
2 ответа
Решение
Это:
fileparam.o: file_parameters.cpp file_parameters.h
g++ -g -Wall file_parameters.cpp -c
должно быть:
file_parameters.o: file_parameters.cpp file_parameters.h
g++ -g -Wall file_parameters.cpp -c
Кроме того, вызывая ваш выходной файл test
может вызвать путаницу - измените на mytest
,
Это потому, что ваша цель, fileparam.o, не генерируется правилами... вместо этого вы генерируете file_parameters.o. make видит, что цель не существует, поэтому она должна создать ее.