加载中...

链接器(Linker)是把编译产生的多个目标文件与库文件合并为可执行文件或共享库的工具,核心工作是符号解析(把每个符号引用绑定到唯一定义)与重定位(为代码和数据分配最终地址并修正引用)。
静态链接把库代码复制进可执行文件,部署简单但体积大;动态链接在装载或运行时由动态链接器(如 ld.so)解析共享库,借助 GOT/PLT 实现延迟绑定,可节省内存并独立升级库。
GNU ld、gold、LLVM 的 lld,以及 mold(以多线程实现极快链接)。链接时优化(LTO)让链接器介入跨编译单元的整体优化。
符号重复定义、未定义引用是最常见的链接错误;C++ 借名字修饰(name mangling)在符号层编码类型信息,跨编译器 ABI 兼容性由此而来。

登录 后参与讨论
暂无讨论,来发表第一条评论吧