如何从Linux .so文件中删除未使用的代码?

时间:2013-12-26 11:53:32

标签: linux shared-libraries

我有二进制文件X,Y,Z,它们使用libA.so,libB.so和libD.so(由ldd打印)。是否有一个工具通过删除X,Y和Z中任何一个未使用的所有符号(以及相关的代码和数据)来使libA.so,libB.so和libD.so文件变小?我无权访问程序的源代码或.so文件。

我想我几年前见过这样的.so剥线工具,但我忘记了细节。

1 个答案:

答案 0 :(得分:2)

我刚刚找到Library Optimizer,但它需要构建libA.so等的原始.o对象文件。

我也找到了mklibs。它还需要.o文件,例如/lib/libc_pic.a。但它使用起来非常方便,安装也很简单:sudo apt-get install mklibs。请注意,大多数共享库没有预编译*_pic.a,因此不会节省大小。