如何彻底删除可执行文件

peo*_*oro 35 linux executable gcc strip elf

我想尽可能多地剥离 - 在Linux上:一个ELF.我只想在那里运行它需要的东西.

我试过用strip:

strip --strip-all elf
Run Code Online (Sandbox Code Playgroud)

但它似乎没有做得好:nm仍然显示很多东西,二进制文件仍然很大.

我该怎么办?

Dir*_*tel 36

如果其他一切都失败了,你可以阅读文档,从开始man strip.

说真的,也许你的应用程序有很多符号和代码.在一个极端,最大的尺寸减少将是,rm elf但那么你的程序将不再运行.这一切都取决于您的程序以及您编写的内容.

作为一个具体的例子,我最近使用了一个大型C++库,strip没有进一步的参数,将大小从400 + mb减小到大约28mb.但是你不能再对它进行链接(在其他共享库的上下文中),使它有点无用.

但是在使用时strip --strip-unneeded,它将大小从400+ mb更改为55 mb,这仍然相当可观,但允许从其他共享库访问库.

简而言之,我相信strip.如果没有代码更改,您的应用程序可能无法进一步减少.


yor*_*ick 15

使用-R选项进行剥离,可以去掉所有不需要的部分.另外,也要看看这个关于最小的ELF可执行文件.


oss*_*sys 7

我会查看这篇有关使ELF可执行文件尽可能小的深入文章.也许它有信息可以帮助!

http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html