ビルド時間の短縮
Boostは便利だけど、ちょっと使っただけでビルド時間が一気に長くなってしまうので、何とかならないか調べてみた。
まず、最近のgccではプリコンパイル済みヘッダ(PCH)が使えるらしい。しかし、ヘッダをプリコンパイルしたときのオプションが本番のコンパイル時と違う場合、プリコンパイル済みヘッダは利用されない可能性が高いとのこと(http://d.hatena.ne.jp/rero/20080609/p1)。リリース時のみ使うか、VCで言うところのstdafx.hのようにプロジェクトごとのプリコンパイル済みヘッダを用意する、ということになりそう。
次に、以前から名前は知っていたccacheを見つけた。(本家、windows版)
これはヘッダをプリプロセスした結果をキャッシュするツールで、使い方は単に
$ ccache gcc foo.c
とすれば二度目からコンパイルを高速化してくれる。
こっちはBoostを使ったごく短いプログラムでも目に見えて速くなったので、かなり良さそう。
追記:
ccache-win32はgccに-cオプションが付くとなぜかうまく動かない。makeとかから機械的に呼ぶツールだから、これは困った。