最近、c ++プロジェクト内のいくつかの非常に大きなファイルを、多くの小さなファイル(基本的にクラスごとに1つのファイル)に分割しました。これにより、コンパイル時間が2倍以上になり、結果の実行可能ファイルが1.6MBから2.4MBに拡大されました。なぜこれがそんなに大きな違いを生んだのですか?
これは、少数ではなく、多くのファイルにいくつかのヘッダーを含める必要がある直接的な結果ですか?
コミラーオプション:
g ++ -Wall -Wextra -g -ggdb -std = c ++ 0x
私が参照している実行可能ファイルのサイズは、strip-s実行可能ファイルを実行した後のものです。
サイズ:
以前のデバッグシンボル:16MB
デバッグシンボルを使用した後:26MB
デバッグシンボルなしの場合:1.5MB
デバッグシンボルなしの後:2.4MB
追加の質問:
ヘッダーをpch.hppに配置し、g++フラグで-includepch.hppオプションを使用することで、プリコンパイル済みヘッダーをすでに使用しています。これはgccでこれを行うための最適な方法ですか?コンパイル時間への影響はごくわずかのようです。現在プリコンパイルされていない唯一のヘッダーはプロジェクトの一部であり、プロジェクトは大規模な開発中であるため、変更される可能性があります。