実行可能ファイルのサイズを大幅に最適化する必要があります(ARM
開発)と、現在のビルドスキーム(gcc
+ ld
)で未使用のシンボルが削除されないことに気付きました。
arm-strip --strip-unneeded
結果の実行可能ファイル/ライブラリのの使用は、実行可能ファイルの出力サイズを変更しません(私には理由がわかりません、たぶんそれができないのかもしれません)。
使用されていないシンボルが結果のファイルから削除されるように、ビルドパイプラインを変更する方法(存在する場合)は何ですか?
私もこれについては考えていませんが、現在の組み込み環境は非常に「強力」ではなく500K
、2M
結果を保存しても、ロードパフォーマンスが非常に向上します。
更新:
残念ながら、gcc
私が使用する現在のバージョンには-dead-strip
オプションがなく、-ffunction-sections... + --gc-sections
for を使用してもld
、結果の出力に大きな違いはありません。
gcc + ld
未使用のシンボルを自動的に取り除く必要があると確信していたので、これが問題になることにもショックを受けました(なぜそれらを保持する必要があるのですか?)。
boost
ライブラリを使用する既存のアプリケーションを移植しようとすると、結果の.exe
ファイルに多くの未使用のオブジェクトファイルが含まれ、現在の埋め込みランタイムの仕様が原因です。 、10mb
アプリケーションの起動には、たとえば500k
アプリケーションの起動よりもはるかに時間がかかります。