【发布时间】:2016-07-28 13:39:37
【问题描述】:
我正在构建一个共享对象 (.so),并将它与第三方静态库链接。在一个理想的世界中,第三方库应该是用-fvisibility=hidden 编译的——但事实并非如此。
有没有办法避免将静态库定义的符号包含在动态库导出的全局符号中?
(如果重要的话,我在 linux 平台上使用 gcc)
【问题讨论】:
-
看看
strip -
我想我可以编写一个脚本,在 .a 文件上运行
nm以查找它定义的所有符号,并使用strip --strip-symbol=symbol1 ...从 .so 中删除它们。这就是你的意思@MichałWalenciak? -
我对@987654325@ 及其全部功能不是很熟悉,但一般来说我就是这么想的。