标签: c gcc linker android-ndk ld
我正在构建一个包含公共接口的共享库,其中包含一些对象文件public.o
共享库由100多个其他对象文件组成,我想最小化.so文件的大小。有没有办法从共享库中删除未被public.o引用的所有符号?或者,有没有办法只保留extern“C”函数的依赖关系,剥离所有未使用的C ++名称?
答案 0 :(得分:2)
查看本手册: http://gcc.gnu.org/wiki/Visibility 它解释了例如如何处理C ++名称的东西。
答案 1 :(得分:1)
您可以使用最近的GCC(例如4.6.1版本)并在编译和(库)链接时传递-flto。
-flto
(已添加)您还可以使用visibility属性进行播放。
但我不会打扰* .so