zoukankan      html  css  js  c++  java
  • -fvisibility= [ hidden | default ]

    -fvisibility= [ hidden | default ] 

    符号可见性编译选项,readelf -a xxx.so | grep function_name 可以查看

    # readelf -a libtest.so | grep memset_s
        10: 0000000000000665    35 FUNC    GLOBAL DEFAULT   12 memset_s
        54: 0000000000000665    35 FUNC    GLOBAL DEFAULT   12 memset_s

    -fvisibility=hidden 默认设置所有符号的可见性为 LOCAL,表示只在当前 lib 可见(ld 链接时不可见)

    -fvisibility=default 默认设置所有符号的可见性为GLOBAL,表示全局可见(ld 链接时可见)

    也可以在代码里面单独指定特定符号(函数)的可见性:

    __attribute__ ((visibility ("hidden"))) int memset_s(int *a) {
        *a = 0;
    }
    
    __attribute__ ((visibility ("default"))) int memset_s(int *a) {
        *a = 0;
    }
  • 相关阅读:
    5 静态链接和动态链接
    4 程序编译与链接
    3.死锁
    2.调度算法
    1 select,poll和epoll
    python语言特性
    python动态规划
    python语言编程算法
    链表
    认识黑客常用的入侵方法
  • 原文地址:https://www.cnblogs.com/tongyishu/p/14063099.html
Copyright © 2011-2022 走看看