为什么包含需要进一步的依赖?

本尼迪克特·S·沃格勒

我目前的理解是这样的。如果我错了,请纠正我。当我将 C++ 库(例如开源项目)包含到我的项目中时,我必须包含 .h 文件,以便编译器知道所包含库的接口。包含库的编译代码然后由链接器链接。

但是现在在编译期间,包含的头文件需要另一个依赖项。如果我将包含此依赖项的头文件,在包含每个依赖项之前,这是否会变成一些递归循环?为什么需要它?这不应该是链接器的关注点吗?编译后的库包含依赖项。

我使用 Xcode 9.4 偶然发现了这个项目。

比拉尔·西迪基

编译器将代码翻译成机器语言。然后使用链接器将所述代码与其他机器代码串在一起。如果感到困惑,请谷歌更多关于我写的内容;这是一种简化,缺少更精细的细节。

#include <cstdint>例如,当您键入时预处理器(另一个单独的程序)会执行模式替换(如果您愿意),#include <cstdint>并用cstdint.hh文件的全部内容替换该行替代发生在机器代码的翻译过程甚至开始之前。

通常,这些#include <...>文件都是精心编写的,这样你就不需要去追逐其他 #include. 但是,这不是保证。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

需要进一步优化代码

网页抓取,需要进一步解析

为什么并行处理不能进一步加快速度?

为什么按住鼠标按钮输入元素会干扰进一步的鼠标事件?

为什么在继续之后;执行进一步的功能代码被执行?

为什么 VecDeque is_empty 会阻止进一步借用?

为什么git不能进一步减小存储库的大小?

什么是迭代器的“进一步过滤”?

进一步的点击会发生什么

如何从AUR安装需要进一步依赖于AUR软件包的软件包

进一步过滤聚合

进一步解释 keyExtractor

当 DialogContent 包含带间距的嵌套网格时,为什么会在仅进一步扩展的情况下添加滚动条?

要在Java的正则表达式中执行此操作,需要转义或进一步更改什么?

与SSE2相比,AVX为什么不能进一步提高性能?

我如何进一步理解为什么Go会以这种方式处理错误?

来自具有多个功能的集合的结果不可用于进一步的计算。为什么?

为什么调用indexedDB.deleteDatabase阻止我进行任何进一步的事务?

Elixir:集成测试误报,为什么会失败以及如何防止进一步的误报?

这是Flutter(Dart)代码健壮的“异步”用法还是需要进一步的null检查?

在应用帐单中,需要进行进一步的测试

如果需要进一步过滤,在Active Record查询中查询中的“或”是否更快?

是否需要进一步规范化此数据?

lua数组包含用于进一步检查的特定值

文件终端命令是否包含/ *-如何防止它注释掉进一步的工作?

如何在嵌套中进一步选择包含指定类的div?

如何进一步检查该字符串不包含点

有什么方法可以进一步优化Java反射方法调用?

ESC + {:这是什么?在哪里可以进一步了解?