为了账号安全,请及时绑定邮箱和手机立即绑定

链接器做什么?

链接器做什么?

C++
慕盖茨4494581 2019-12-10 13:08:58
我一直想知道。我知道编译器会将您编写的代码转换为二进制文件,但是链接程序会做什么?他们一直是我的谜。我大致了解什么是“链接”。这是将对库和框架的引用添加到二进制文件中的时候。除此之外,我什么都不懂。对我来说,它“有效”。我也了解动态链接的基础知识,但没有什么太深的。有人可以解释一下这些条款吗?
查看完整描述

3 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

在像“ C”这样的语言中,传统上,各个代码模块被单独编译为目标代码的blob,除了在模块外部进行的所有引用(即对库或其他模块)具有引用之外,还可以在各个方面执行尚未解决(即,它们是空白,正在等待有人来进行所有连接)。

链接器所做的是一起查看所有模块,查看每个模块需要连接到外部本身的内容,并查看它正在导出的所有内容。然后修复所有问题,并生成最终的可执行文件,然后可以运行该可执行文件。

在动态链接还在进行的地方,链接器的输出仍然无法运行-仍然有一些对外部库的引用尚未解析,并且它们在加载应用程序时由OS解析。甚至在运行过程中更晚)。



查看完整回答
反对 回复 2019-12-11
  • 3 回答
  • 0 关注
  • 377 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信