文档目录
链接器进阶
目标:打通构建系统的"最后一公里",掌握链接器控制。
-
9.1 符号可见性与导出控制
__attribute__((visibility("default/hidden")))与-fvisibility=hidden。- 动态库导出符号表的最精简策略:减少符号不仅减小 .so 体积,还加速动态重定位。
-
9.2
--gc-sections与死代码消除- 将每函数/每数据放入独立 section,链接器裁剪未引用的函数。
- 对嵌入式/终端的体积优化的价值。
-
9.3 LTO 与 ThinLTO
- 全量 LTO(
-flto)的编译时间增加问题。 - ThinLTO(
-flto=thin):分片并行 LTO,编译时间接近非 LTO,优化效果接近全量 LTO。
- 全量 LTO(
-
9.4 链接脚本(Linker Script)
- 自定义 section 布局(将热代码放到特定内存区域)。
- 嵌入式系统的地址映射控制。