【发布时间】:2015-01-03 08:39:50
【问题描述】:
(第一个)问题:
我有一个共享库shared1.so,它使用的是静态库static1.a。
我有另一个共享库shared2.so。shared2.so 由于限制,无法直接与static1.a 链接。
我想让shared2.so 使用static1.a。
我的解决方案
我在shared1.so 中导出了static1.a 函数,现在shared2.so 通过与shared1.so 链接使用static1.a 函数。这工作正常!
但是我最终所有static1.a 符号都出现在shared1.so 中。
(第二个)问题
如何摆脱shared2.so 未使用的所有这些符号/功能?
我试过了:
arm-linux-androideabi-objcopy --strip-symbols symbols_of_static1_which_i_dont_use.txt shared1.so
但是它什么也没做,也没有警告(即使使用 -v)。
我也尝试了arm-linux-androideabi-strip,但它也没有剥离任何东西。
编辑:
所以strip 似乎只去除了静态符号并且没有触及 .dynsym 部分。
我仍在寻找一种方法来删除所有不必要的 static1.a 符号,这些符号现在在 shared1.so 中导出
【问题讨论】:
标签: android c++ android-ndk shared-libraries symbols