文档目录

链接器进阶

目标:打通构建系统的"最后一公里",掌握链接器控制。

  • 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。
  • 9.4 链接脚本(Linker Script)

    • 自定义 section 布局(将热代码放到特定内存区域)。
    • 嵌入式系统的地址映射控制。