Вместо того, чтобы прописывать все правила и все команды, используйте переменные и неявные правила для построения вашей программы:
CXXFLAGS = -std=c++11
hw07: test.o functions.o
test.o: test.cpp headerfile.h
functions.o: functions.cpp headerfile.h
clean:
rm *.o hw07
Это позволит make
создавать объектные файлы, используя $(CXXFLAGS)
в качестве параметров для передачи компилятору. Затем make
соберет программу hw07
, используя файлы, перечисленные в ее зависимостях.
Другие флаги, которые хорошо иметь при компиляции исходных файлов: -Wall
и -Wextra
. Они включают больше предупреждающих сообщений от компилятора, которые почти во всех случаях указывают на подозрительные вещи, которые могут привести к проблемам.