参考资料
Linux 动态库同名函数处理
http://blog.chinaunix.net/uid-27875-id-5759441.html
dlopen dlsym 1. 注意只对c语言动态库起作用,如果是cpp代码,加extern "C" {}
2. 顺序不影响
//#define API_EXPORT __attribute__((visibility("hidden")))
#define API_EXPORT __attribute__((visibility("default")))
//int 和API_EXPORT两者顺序不影响
int API_EXPORT func(){}
API_EXPORT int func(){}
3.仅对声明的函数起作用
//声明的函数对外不可见,编译不过
//#define API_EXPORT __attribute__((visibility("hidden")))
//声明的函数对外可见,编译通过,且正常调用
#define API_EXPORT __attribute__((visibility("default")))