__attribute__((visibility("default")))

来源:互联网 发布:单片机工作过程 编辑:程序博客网 时间:2024/06/05 11:17

__attribute__ 是设置函数属性(或者变量属性, 类型属性), 可以设置的属性包括

 packed,cleanup, common,nocommon,deprecated,mode,section,shared,tls_model,transparent_union 

visibility属性是设置将本项目的函数作为库使用时的可见性。g++编译时, 加入-fvisibility=hidden参数, 会将所有默认public属性设为hidden, 导致库外文件不可见。

__attribute__((visibility("default"))):表示设置函数在使用动态链接库时是外部可用的。在对特定函数可见性进行设置, 避免冲突。

-fvisibility=default|internal|hidden|protected

gcc的visibility是说,如果编译的时候用了这个属性,那么动态库的符号都是hidden的,除非强制声明。
0 0
原创粉丝点击