LLVM IR Linkage Type引入链接类型internal
,但我不理解STB_LOCAL和ELF词。
此链接类型的作用是什么? private
和internal
有什么区别?
ELF
或可执行和可链接格式是允许您的操作系统正确解释二进制文件的正式规范。
STB_LOCAL
是ELF
中的绑定属性,该属性将符号限定为目标文件或翻译单元的本地符号。
符号表保存与翻译单元/模块/程序的符号定义和引用有关的信息,并由多个节或子表(例如符号字符串表)组成。参见http://www.frascati.enea.it/documentation/tru6450/SUPPDOCS/OBJSPEC/DOCU_005.HTM
目标文件被分成几个部分(与符号表的部分不同),并且每个符号表的条目相对于某个部分都是defined。
private
链接”通常用于与single部分关联的符号。一个示例是局部功能符号。参见https://docs.oracle.com/cd/E19120-01/open.solaris/819-0690/chapter6-79797/index.html
internal
和private
链接类型均表示全局值只能由当前模块中的对象直接访问。在私有情况下,唯一的事情是该值不会显示在符号表中。