8

私は組み込みプロセッサに取り組んでいるので、バイナリサイズは非常に重要です。標準ライブラリの使用を避けようとしています。ただし、 std::function を使用したいと思います。ブーストから "function.hpp" を抽出し、それを使用しようとしていますが、単純に function.hpp を含めると、バイナリのサイズが 200k 増加し、プロセッサが受け入れられるよりも大きくなります。標準ライブラリを含めると、バイナリ 60k しか増加しません。まだテンプレートを使用していない場合、オーバーヘッドは発生しないはずです。仮にそうだったとしても、20 万の価値のあるコードだとは想像できません。私は gcc 4.7 を使用しており、"-g0" でデバッグ情報を無効にし、最適化 "-O2" をオンにしました。

どんな助けでも大歓迎です。

4

1 に答える 1

2

を使用している場合でも、GCC はコンパイルされたバイナリにいくつかのシンボル情報を含めます-g0。すべてのシンボルを実際に取り除くには--strip-all、リンカーのコマンド ライン オプションを使用する必要があります。

また、実行可能ファイルのサイズは重要なので、コンパイラとリンカについて検討-fdata-sectionsしてください。-ffunction-sections--gc-sections

于 2013-02-05T01:25:03.103 に答える