【发布时间】:2018-08-13 12:23:36
【问题描述】:
我目前的理解是这样的。如果我错了,请纠正我。当我在我的项目中包含一个 C++ 库(例如开源项目)时,我必须包含 .h 文件,以便编译器知道所包含库的接口。所包含库的编译代码然后由链接器链接。
但现在在编译过程中,包含的头文件需要另一个依赖项。如果我包含此依赖项的头文件,在包含每个依赖项之前,这不会变成一些递归循环吗?为什么需要它?这不应该是链接器的关注点吗?编译后的库包含依赖项。
我使用 Xcode 9.4 偶然发现了这个项目。
【问题讨论】:
-
这样想可能会有所帮助:每个
#include语句都相当于将整个包含的代码复制粘贴到#include的位置。所以对于链接器来说,一个包含另一个的 .h 文件相当于只有一个包含两者定义的头文件。 -
#include部分与链接器阶段 BTW 无关。
标签: c++ xcode compilation