llvm - 了解内部 LLVM IR 链接类型?
问题描述
LLVM IR Linkage Type介绍了 links type internal
,但我不明白STB_LOCAL和ELF两个词。
这种链接类型提取了什么?private
和和有什么区别internal
?
解决方案
ELF
或Executable and Linkable Format是一种正式规范,允许您的操作系统正确解释二进制文件。
STB_LOCAL
是绑定属性,ELF
用于将符号限定为目标文件或翻译单元的本地。
符号表保存与翻译单元/模块/程序的符号定义和引用相关的信息,并由多个部分或子表组成,例如符号字符串表。请参阅http://www.frascati.enea.it/documentation/tru6450/SUPPDOCS/OBJSPEC/DOCU_005.HTM
一个目标文件被分成多个部分(不同于符号表部分),并且每个符号表条目都是相对于某个部分定义的。
private
链接通常用于与单个部分关联的符号。一个例子是局部函数符号。请参阅https://docs.oracle.com/cd/E19120-01/open.solaris/819-0690/chapter6-79797/index.html
和链接类型internal
都private
意味着全局值只能由当前模块中的对象直接访问。唯一的问题是在私有情况下,值不会显示在符号表中。
推荐阅读
- html - 如何让底部的两张卡片填满屏幕的整个高度(Quasar 框架)
- reactjs - 如何为 React 组件中的每个嵌套元素设置特定的类
- java - 使用字符串列表改造查询
- c# - 如何在列表视图中以不同方式对齐标签
- r - 将多个值传播到R中数据框中的唯一值
- python - 如何在 tkinter 中为框架制作自定义滚动条
- r - 搜索栏不显示在传单地图上
- bash - 带有文件名情况的递增数字脚本
- mongodb - Need guidance on mongo aggregate lookup to count subnodes in all child nodes for each node
- flutter - 如何使用 http get 方法获取命名的 json 响应 Flutter