美文网首页
关于符号的可见性

关于符号的可见性

作者: 小胖_20c7 | 来源:发表于2019-05-31 16:53 被阅读0次
相关的宏定义
#define __LIBC_HIDDEN__ __attribute__((visibility("hidden")))
#define __LIBC_EXPORT__ __attribute__((visibility("default")))
相关的编译项
-fvisibility=default|hidden(这个是编译项,是gcc通知编译器的)
-Wl,-export-dynamic or -rdynamic(这个是链接项,是gcc通知链接器的)
符号可见的两个要素
1 符号导出行为(so默认导出,exe默认只有被其它so用的符号才导出)
2 符号可见性(编译的时候指定,默认都是可见的)
只有1,2都判断成功,符号才会被导出到.dynsym表中
基本原理
1 -fvisibility=hidden,是编译属性,决定了每个obj中全局符号的hidden or default(visibility)
2 完成所有obj的链接后,会根据如下规则来完成符号导出
      1 是exe(默认没有符号导出行为,但可以通过-export-dynamic改变默认行为)
      2 是so(默认是有符号导出行为的)
      3 判断完1,2后,进行符号可见性的判断(即Vis属性)
      上述条件都满足,则export符号到.dynsym表中,注意最后生成的exe或者so文件
      是没有Vis属性的,因为这个时候Vis已经整合到Bind属性中(local or global)

相关文章

  • 关于符号的可见性

    相关的宏定义 相关的编译项 符号可见的两个要素 基本原理

  • 控制目标文件符号可见性

    控制符号可见性实验环境参考nm工具使用符号类型符号及符号可见性是什么?举例为什么控制符号可见性?举例题外话 - 头...

  • 编译原理系列之八 符号表

    符号表 符号表用来体现作用域与可见性信息 符号表的作用:① 收集符号属性;(词法分析)② 上下文语义的合法性检查的...

  • 关于符号!

    #IP营销#关于符号: 品牌是一种符号 颜色是一种符号:比如王老吉的“红罐”,拿一个什么也没写的红罐你首先也会想到...

  • 每日夜读-超级符号原理[27]唯一重要的问题:超级符号是什么。2

    超级符号的特征是可识别、可描述、可注册,并且它是一个选择行为。 超级符号首先是选择,我们要选择什么样的传统符号进行...

  • Word使用技巧——Word中各种符号的输入

    1. 键盘输入 2. 插入符号 符号集Windings 2Word下有各种符号集,每个符号集下有各种各样的符号,可...

  • 三、volatile

    特征 被volatile修饰的变量,具有两个特征 保证可见性 不保证原子性 禁止指令重排序 关于内存可见性、原子性...

  • 关于弱符号和弱引用

    宏定义 关于上述宏定义的说明 强符号 弱符号 弱引用

  • 多线程 | Volatile到底有什么用?

    Volatile的作用: 保持内存可见性.内存可见性:多个线程操作同一个变量,可确保写线程更新变量,其他读线程可以...

  • 见性见性见性

    人活着活着就迷失了忘记了自己是谁迷失了本性,活着活着想死了。 其实是没有见性,人如何见性,见什么性得通过人生经历来...

网友评论

      本文标题:关于符号的可见性

      本文链接:https://www.haomeiwen.com/subject/lcawtctx.html