我正在编写一个名为“警报中心”的小程序,我使用的主要类/对象是:点、线和建筑。我的 Makefile 的内容是:
building.o: building.h line.h point.h building.cpp
g++ -c building.cpp
line.o: line.h point.h line.cpp
g++ -c line.cpp
point.o: point.h point.cpp
g++ -c point.cpp
alert_center: point.o line.o building.o
g++ point.o line.o building.o runner.cpp -o alert_center
问题是它只考虑列出的第一个文件。例如,如果我更改line.cpp
,然后运行make
,什么都不会发生,它会说building.o
没有改变。line.o
只有当我为第一个规则制定规则时,才会编译更改。有谁知道为什么会这样?