C ++ - Makefile问题

时间:2013-06-29 00:27:40

标签: c++ makefile

我正在编写一个名为“警报中心”的小程序,我正在使用的主要类/对象是:Point,Line和Building。我的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制定规则时,才会编译更改。有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:4)

alert_center设为默认目标。您可以使用.default明确地执行此操作(请参阅this),或者只是将其列为第一个使其成为默认目标的目标。

在多个目标的情况下,通常有一个名为all的伪目标并将其作为默认目标。请参阅make recommended targets here