できる限りストリップしたいのですが、LinuxではELFです。実行するために必要なものだけが必要です。
strip
を使ってみました:
strip --strip-all elf
しかし、それは良い仕事をしていないようです:nm
はまだたくさんのものを表示し、バイナリはまだ大きいです。
私は何をすべきか?
他のすべてが失敗した場合、man strip
で始まるドキュメントを読むことができます。
真剣に、おそらくあなたのアプリケーションは多くのシンボルとコードを持っています。極端な場合、最大のサイズ削減はrm elf
になりますが、プログラムは実行できなくなります。それはすべてyour programとそれにコーディングした内容に依存します。
具体的な例として、私は最近、strip
がさらに引数を指定せずにサイズを400 + mbから約28mbに削減した大きなC++ライブラリを使用して作業しました。しかし、それから(他の共有ライブラリのコンテキストで)それに対してリンクすることができなくなり、ある程度役に立たなくなりました。
ただし、strip --strip-unneeded
を使用すると、サイズが400+ mbから55 mbに変更されますが、これはかなりの量ですが、他の共有ライブラリからライブラリにアクセスできます。
つまり、strip
を信頼します。コードを変更しない限り、アプリケーションをこれ以上縮小することはできません。
-Rオプションを使用してストリップすると、不要なセクションをすべて除去できます。最小のELF実行可能ファイルに関しては this も参照してください。
ELF実行ファイルを可能な限り小さくすることについて深く掘り下げたこの素晴らしい記事をチェックしてみます。多分それは助けることができる情報を持っています!
http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
strip -R .comment
gcc -Os elf.c
これらの2つが役立つ場合があります。