弱引用:

特殊符号:

明明冲突的解决方法:


C++ filt 工具。

C++ ABI 。

修饰符处理。

DWARF 标准:

ld 的 默认入口函数是 _start()

call 指令的操作数是偏移量,不是真正的地址,真正的地址需要计算。

符号解析:

C++ link once 最终链接。

函数级别链接:

main 之前的执行流程:

Windows 的库。

collect2 是对 ld 的一个封装。

静态链接 只会链接需要的内容,libc.a 5.8M,但实际不会完全链接进去。

链接脚本:

BFD 库。

由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1,QQ:2338195090。