Lin's Blog

LLVM Linkage & ELF Bind,Visibility

本文探讨 C/C++ 程序编译链接过程中符号的三个关键属性:LLVM IR Linkage(编译器层面)、ELF Bind(静态链接)和 ELF Visibility(动态链接)。通过完整的代码示例,演示了 external、static、weak、hidden、protected、TLS、inline、template 等各种链接类型,并展示对应的 LLVM IR 和 llvm-readelf 输出。重点阐述了 Bind 决定多个 .o 文件链接时哪个定义胜出,Vis 决定 .so 加载后符号能否被其他库访问或覆盖。适合想深入理解符号可见性和链接行为的开发者。