链接器做什么?

我一直想知道。我知道编译器会将您编写的代码转换为二进制文件,但是链接程序会做什么?他们一直是我的谜。

我大致了解什么是“链接”。这是将对库和框架的引用添加到二进制文件中的时候。除此之外,我什么都不懂。对我来说,它“有效”。我也了解动态链接的基础知识,但没有什么太深的。

有人可以解释一下这些条款吗?


慕盖茨4494581
浏览 379回答 3
3回答

慕妹3242003

在像“ C”这样的语言中,传统上,各个代码模块被单独编译为目标代码的blob,除了在模块外部进行的所有引用(即对库或其他模块)具有引用之外,还可以在各个方面执行尚未解决(即,它们是空白,正在等待有人来进行所有连接)。链接器所做的是一起查看所有模块,查看每个模块需要连接到外部本身的内容,并查看它正在导出的所有内容。然后修复所有问题,并生成最终的可执行文件,然后可以运行该可执行文件。在动态链接还在进行的地方,链接器的输出仍然无法运行-仍然有一些对外部库的引用尚未解析,并且它们在加载应用程序时由OS解析。甚至在运行过程中更晚)。
打开App,查看更多内容
随时随地看视频慕课网APP