C++-生成文件问题

C++ - Makefile issues

本文关键字:问题 文件 C++-      更新时间:2023-10-16

我正在编写一个名为"警报中心"的小程序,我使用的主要类/对象有:点、线和建筑。我的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的规则作为第一个规则时,才会编译更改。有人知道为什么会发生这种事吗?

alert_center设为默认目标。您可以使用.default显式地执行此操作(请参见此),也可以简单地将其列为第一个目标以使其成为默认目标。

在多个目标的情况下,通常有一个名为all的伪目标,并将其作为默认目标。请在此处查看制定推荐目标。