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