たくさんのファイルと関数を使って巨大なC ++プロジェクトを変更しました。問題は、グローバル変数と関数を含む、役に立たないファイルがたくさんあることです。手でそれらを取り除くのは苦痛でしょう。コンパイラのようにコードを分析し、未使用のものをすべて削除するツールはありますか?UNIX用のツールがいいと思います。また、上記の役に立たないコンポーネントの1つまたはいくつかだけを削除する方法も役立ちます。
システムを構築するたびにリンカーがこれを行うことを気にしないのであれば、コードサイズを最適化するためのGNUツールチェーン自体のいくつかの可能性があります。また、C ++には、実際には「未使用のコード」とは何かという疑問が常にあります(ポインターやキャストを操作すると、ツールが誤解を招く可能性があるため)。
したがって、これに対する最善の策は、ゴールドリンカー(ldをゴールドに置き換える-経験はありますか?)と次のオプションです。
-gc-sections
:GCC--gc-sectionsとシンボルの依存関係の検索--icf
:GCC(/ Clang):関数を同一の命令とマージ(COMDATフォールディング)-Os
:実行可能ファイルのサイズを縮小するプロセス「より大きな」アプローチは、静的コードアナリスト/コードリファクタリングツール(コードのどの部分が使用されていないかを知るにはどうすればよいですか?)であり、Boostなどの特定のライブラリにはファイル数を減らすための独自のツールが付属しています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加