so库文件控制导出符号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了so库文件控制导出符号相关的知识,希望对你有一定的参考价值。
在Windows下生成DLL时,可以使用dll_export来将需要对外的符号导出来。
__declspec(dllimport)
而在Linux中,默认是所有的符号都是导出的,只有使用了相应的attribute才能将不想导出的(库内部使用的)的符号隐藏起来。
__attribute__((visibility("hidden")))
下面来对比一下,前面一段是默认的输出,后面一段是在类前添加了hidden限制的输出:
以上是关于so库文件控制导出符号的主要内容,如果未能解决你的问题,请参考以下文章
Kivy Buildozer:.so lib 文件缺少调试符号
未从 libstdc++.a(libstdc++.so.6) 导出对“_ZNSt5__padIcSt11char_traitsIcEE6_S_padERSt8ios_basecPcPKcllb”符号的