linux动态链接库导出函数

来源:互联网 发布:以下淘宝禁止出售商品 编辑:程序博客网 时间:2024/05/16 05:35

 近日在项目中遇到一个问题,需要在so库中控制导出函数,即像windows平台一样,只允许制定的函数导出,而其他函数需要屏蔽掉。

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

  参考:http://blog.csdn.net/wangjingfei/article/details/5693535点击打开链接

原创粉丝点击