C ++链接如何在实践中发挥作用?

C ++链接如何在实践中发挥作用?

C ++链接如何在实践中发挥作用?我正在寻找的是关于链接如何发生的详细解释,而不是链接的命令


ibeautiful
浏览 485回答 3
3回答

天涯尽头无女友

实际上,可以说链接相对简单。在最简单的意义上,它只是将对象文件1捆绑在一起,因为它们已经包含了各自源中包含的每个函数/全局/数据的发出程序集。链接器在这里可能非常愚蠢,只需将所有内容视为符号(名称)及其定义(或内容)。显然,链接器需要生成一个尊重某种格式的文件(一般在Unix上的ELF格式),并将各种类别的代码/数据分成文件的不同部分,但这只是调度。我所知道的两个并发症是:需要去除重复符号:一些符号存在于几个目标文件中,只有一个符号应该在创建的结果库/可执行文件中; 链接器作业只包含其中一个定义链接时优化:在这种情况下,目标文件不包含发出的程序集,而是包含中间表示,链接器将所有目标文件合并在一起,应用优化传递(例如内联),将其编译为汇编并最终发出结果。1:编译不同翻译单元的结果(粗略地说,预处理的源文件)

慕娘9325324

除了已经提到的“ 链接器和加载器 ”之外,如果你想知道真实和现代链接器的工作原理,你可以从这里开始。
打开App,查看更多内容
随时随地看视频慕课网APP