原标题:控制linux动态链接库导出函数

在 中,我们可以通过-fvisibility=default|internal|hidden|protected来控制 。

在GCC帮助文档 -fvisibility=default|internal|hidden|protected参数下有这样一段描述:

a superior solution made possible by this option to marking things hidden when the default is public is to make the default hidden and mark things public. This is the norm with DLL's on Windows and with -fvisibility=hidden and "__attribute__ ((visibility("default")))" instead of "__declspec(dllexport)" you get almost identical semantics with identical syntax. This is a great boon to those working with cross-platform projects.

需要了解的是,在linux下,源文件中的所有函数都有一个默认的visibility属性,即为public,在编译命令中加入 -fvisibility=hidden参数,会将所有默认的public的属性变为hidden。此时,如果对函数设置__attribute__ ((visibility("default")))参数,使特定的函数仍然按默认的public属性处理,则-fvisibility=hidden参数不会对该函数起作用。所以,设置了-fvisibility=hidden参数之后,只有设置了__attribute__ ((visibility("default")))的函数才是对外可见的。

责任编辑:

linux 动态输出函数名,控制linux动态链接库导出函数相关推荐

  1. linux 动态库建立,浅析linux下静态库和动态库的建立和使用

    在粤嵌学了很多知识,我们把常用的公用函数放在一起做成一个函数库,可以供其他程序共同使用,函数库本质上说,是一个可执行代码的二进制形式,可被操作系统载入内存执行.linux下的库分为两种:静态库,后缀名 ...

  2. linux 修改主机名 命令,Linux修改主机名命令详解

    Linux修改主机名命令 1.如果只需要临时更改主机名,可以使用hostname命令. sudo hostname # 例如: sudo hostname myDebian 这条命令不会更改/etc/ ...

  3. linux修改动态ip名领,Linux动态和静态修改ip(转)

    静态方法 注意:所有操作均使用root用户 修改ip: 编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 //设备名称,不要修改 BO ...

  4. linux系统扩展名大全,Linux系统文件扩展名学习

    Linux系统下的扩展名并不能标识该文件是属于哪一种类型的文件. 文件是否可以执行等都跟文件的扩展名无关. 因为文件script没有执行权限,所以也就无法执行, sh-3.2# touch ./scr ...

  5. linux ps1 主机名 ip,Linux主机名颜色设置,ps1设置,然linux有颜色

    RedHat的字体和背景颜色的改变方法: 命令: PS1="[\e[32;1m\u@\h \W]\\$" 或 export PS1="[\e[32;1m\u@\h \W] ...

  6. linux查看接口名,在linux下 怎么查看网络接口的名字? 网络接口的名字英文是什么呀?...

    满意答案 ofkdk 2013.07.27 采纳率:52%    等级:12 已帮助:9666人 一般linux下有一块网卡默认是eth0, 第二块是eth1..以此类推 bond0是双网卡绑定出来的 ...

  7. linux脚本判断流程控制,linux shell awk 流程控制语句(if,for,while,do)详细介绍

    在linux awk的 while.do-while和for语句中允许使用break,continue语句来控制流程走向,也允许使用exit这样的语句来退出.break中断当前正在执行的循环并跳到循环 ...

  8. linux下变量名长度,Linux中shell的变量介绍

    Linux中shell的变量介绍 发布时间:2020-06-24 16:20:39 来源:亿速云 阅读:112 作者:元一 这期内容当中的小编将会给大家带来有关Linux中shell的变量介绍,以专业 ...

  9. linux动态库路径生效,Linux下如何解决动态库的链接问题

    原标题:Linux下如何解决动态库的链接问题 静态库是一种以空间换取时间和移植性的做法,一些情况下确实有着一定的意义,但是一些情况下,我们自己编写的简单项目,在绝大多数的机器上不存在移植性问题,是没有 ...

  10. linux 动态密码,DKEY for Linux/UNIX

    解决方案 将动态密码结合PAM认证方案,在PAM静态密码认证基础之上,增加一层动态密码(该密码是由硬件令牌产生,每隔60秒变化一次,密码一次使用有效)认证,系统管理员本地和远程访问服务器时,在输入的帐 ...

最新文章

  1. 10种可提升Android应用程序运行效果的技巧
  2. 如何优雅地实现判断一个值是否在一个集合中?
  3. hidl 原理分析_一个 health service 不生效问题引出的一点知识
  4. 【华为云技术分享】技术干货丨通过wrap malloc定位C/C++的内存泄漏问题
  5. vue修改config后怎么生效_梦幻西游 金银锦盒修改后资金怎么攥 可以考虑跑商
  6. 由H3C高层变动对厂商认证的思考
  7. 两万字 40 张图带你参透并发编程
  8. Linux下的.NET之旅:第一站,CentOS+Mono+Xsp构建最简单的ASP.NET服务器
  9. 联系人存储ContactsProvider表分析
  10. 小米青春版路由器解锁root与SSH方法
  11. 启动服务器应用程序失败,打开系统管理时提示:autoupdateserviceset.exe 应用程序错误 应用程序无法正常启动,请单击确定 关闭应用程序。...
  12. 嵌入式linux:通过qemu模拟mini2440开发环境
  13. 分布式光伏运维服务器,分布式光伏电站专业运维管理
  14. python switch函数
  15. 一页纸商业计划书模板(转载)
  16. Rust语言教程(1) - 一门没有GC的语言
  17. utf8mb4_unicode_ci、utf8mb4_general_ci的区别总结
  18. 卸载NotePad++/SublimeText吧:VSCode才是史上最优秀的IDE编辑器
  19. 最大后验概率估计算法(简单,通俗易懂)
  20. Kafka topic分区增加副本

热门文章

  1. 一个非常好用的文字滚动的案例,鼠标悬浮可暂停
  2. shell md5sum
  3. 第二章 oracle 10g体系结构及安全管理
  4. WMI 错误 10的解决
  5. python list相关知识
  6. Kinetics-600数据集介绍
  7. Java中的代理模式--静态代理和动态代理
  8. 新建mavan项目转为web项目
  9. sudo gem install cocoapods
  10. 02 ARM存储控制器   SDRAM操作 实验