C++でのビルド時間短縮について

なぜ、そうなるのかというも、いずれ追記するとして、とりあえず意識するべきことを列挙しておく。

  • ヘッダファイルで他のヘッダファイルのインクルードは原則禁止
    例外としてインライン展開用はOK。
  • ヘッダを書き換えると、ヘッダをインクルードしているすべてのソースコードの再コンパイルが必要
    なので、できるだけインクルードは減らした方がいいし、cpp側だけの修正ならば、その部分のcppだけ再コンパイルすればいいので、ビルド時間は大きく伸びない。
  • pImplイディオムを使えば、pImplの実装を修正する分には、ヘッダの修正が不要なので、再コンパイル対象は限定的。
  • メンバ変数は実体ではなくポインタや参照にすれば、前方宣言によりヘッダ側でインクルードが不要になる。

 

参考:モダンなC++におけるコンパイル時間削減のテクニック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です