39

できる限り削除したいと思います-LinuxではELF。そこには、実行するために必要なものだけが必要です。

私は使用してみましたstrip

strip --strip-all elf

しかし、それは良い仕事をしていないようです:nmまだたくさんのものを表示し、バイナリはまだ大きいです.

私は何をすべきか?

4

4 に答える 4

41

他のすべてが失敗した場合は、 から始まるドキュメントを読むことができますman strip

真剣に、アプリケーションに多くのシンボルとコードが含まれている可能性があります。極端な場合、最大のサイズ削減は可能ですrm elfが、そうするとプログラムは実行できなくなります。それはすべて、プログラムとそれにコーディングした内容に 依存します。

具体的な例として、私は最近、strip引数を追加せずにサイズを 400+mb から約 28mb に縮小した大規模な C++ ライブラリを使用しました。しかし、その後、(他の共有ライブラリのコンテキストで) それに対してリンクできなくなり、やや役に立たなくなりました。

しかし、 を使用するstrip --strip-unneededと、サイズが 400+ mb から 55 mb に変更されましたが、これはまだかなりの量ですが、他の共有ライブラリからライブラリにアクセスできるようにしました。

要するに、私は信頼しstripます。コードを変更しない限り、アプリケーションをこれ以上縮小することはできないかもしれません。

于 2010-11-14T18:52:11.307 に答える
16

-R オプションを使用して削除すると、不要なセクションをすべて削除できます。最小限の ELF 実行可能ファイルについては、こちらも参照してください。

于 2010-11-14T18:51:54.753 に答える
8

ELF 実行可能ファイルを可能な限り小さくする方法について詳しく説明しているこの素晴らしい記事をチェックしてみてください。役立つ情報があるかも!

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

于 2011-06-14T13:31:47.473 に答える
1
strip -R .comment
gcc -Os elf.c

あの二人は助かる。

于 2010-11-14T18:53:44.817 に答える