Silphireの日記: precompiled header
日記 by
Silphire
Visual C++のプリコンパイル済みヘッダーは、ソース群をビルド(make)する時に、カレントフォルダにコンパイルしたヘッダーを残しておき、次のコンパイル時から驚異的な速度でビルドを完了できるようにしようとする仕組み。
対して、gccのプリコンパイル済みヘッダーは、/usr/include/に置く事を想定しているようだ。そのせいで、ソフトウェアごとに違うコンパイルオプションに対応するのが困難になっているらしい。
最初この記事を見た時に、何故VC++と同じ方式にしないのかと思ったが、このあたりはコンパイルの仕方の違いに原因があるのだろうという結論に達した。バイナリ配布をする事が多いWindowsの場合、ソース群と同じフォルダに適時プリコンパイル済みヘッダーを作成するという方式でも不便ではないのだろう。しかし、Linuxや*BSDの場合には、tar玉やパッケージから1回しかコンパイルしない事が多いのではないか。従って、/usr/include/にあるヘッダーまでコンパイル済みにしておきたいという欲求があるのだろう。一度分かってしまえば簡単な事だった。
プリコンパイル済みヘッダーは、VC++で使ってみて味を占めているので、gcc 3.4に搭載されるのは非常に嬉しいところ。
precompiled header More ログイン