【发布时间】:2019-12-14 22:25:43
【问题描述】:
我对 .cpp 文件的 Makefile 依赖项有点困惑。例如,假设我有一个包含 Point.h 和 Rectangle.h 的文件 main.cpp。我认为 main.o 的 Makefile 依赖行看起来像:
main.o: main.cpp
但似乎大多数人都会这样做:
main.o: main.cpp Point.h Rectangle.h
我不明白为什么。目标文件是在链接之前创建的,对吧?因此,当 main.cpp 编译为 main.o 时,它对 Point 和 Rectangle 函数的引用在某种程度上仍然是未解析的引用。然后,在生成最终可执行文件时,链接器使用 Point 和 Rectangle 的机器代码解析引用。换句话说,如果我更改 Point.h 或 Rectangle.h,main.o 并不会真正受到影响。最终的可执行文件确实依赖于所有三个,但 main.o 不依赖。我的想法有什么问题?
【问题讨论】:
标签: c++ makefile dependencies