c/c++语言写的动态库可以导出classes以及functions。
下面是一些重要的知识:
1:
gcc编译器生成的动态库中的classes和functions默认都是导出的,而微软的vc的编译器必须针对classes和functions显式的使用 __declspec(export) 才能让classes和functions被导出。
这个知识对于在Linux、OS X、iOS平台上做开发是有帮助的。
2:
如果把动态库的不必要的symbols也导出的坏处是会影响app的加载的速度。
3,
在OS X、iOS上,可以通过修改编译器选项,让symbols hidden by default,然后想要导出的symbols再用 __attribute__ (( visibility("default")))。