我希望尽可能地减少文件大小 - 在Linux上: 一个ELF文件。我只需要里面运行所需的内容。
我尝试使用strip
命令:
strip --strip-all elf
但是它似乎没有做好: nm
仍然显示很多内容,而且二进制文件仍然很大。
我该怎么做?
我希望尽可能地减少文件大小 - 在Linux上: 一个ELF文件。我只需要里面运行所需的内容。
我尝试使用strip
命令:
strip --strip-all elf
但是它似乎没有做好: nm
仍然显示很多内容,而且二进制文件仍然很大。
我该怎么做?
如果一切都失败了,你可以阅读文档,从 man strip
开始。
说真的,也许你的应用程序有很多符号和代码。在一个极端情况下,最大的大小缩减将是 rm elf
,但是你的程序将无法再运行了。这完全取决于 你的程序 以及你编写的内容。
作为一个具体的例子,我最近使用了一个大型的C++库,其中没有进一步参数的 strip
将其大小从400多MB减小到约28MB。但是,你就不能再链接其他共享库来使用它,使它有些无用。
但是当使用 strip --strip-unneeded
时,它将大小从400多MB更改为55MB,仍然相当可观,并允许从其他共享库中访问该库。
总之,我会信任 strip
。也许你的应用程序在没有代码更改的情况下无法进一步缩小。
rm
命令的调皮评论,但是 --strip-unneeded
似乎是重要的提示。如果没有执行这个操作,我也看到了来自另一个评论中的 gcc
-s
标志作为不错的答案,但可能对于库链接来说太过复杂,正如此处所提到的。 - Pysisstrip -R .comment
gcc -Os elf.c
-s
或--strip-all
。