コードをプリコンパイルする 2 つの方法
更新 : 2007 年 11 月
Visual C++ を使用すると、あらゆる C または C++ のコードをプリコンパイルできます。つまり、ヘッダー ファイル以外のコードもプリコンパイルできます。
プリコンパイルは、いくぶん計画が必要ですが、単純なヘッダー ファイル以外のソース コードをプリコンパイルする場合は、コンパイルの速度がかなり高速化されます。
ソース ファイルに複数の共通ヘッダー ファイルが異なる順序でインクルードされている場合、またはプリコンパイルにソース コードを含める場合は、コードをプリコンパイルします。
プリコンパイル済みヘッダーのオプションは、/Yc (プリコンパイル済みヘッダー ファイルの作成) および /Yu (プリコンパイル済みヘッダー ファイルの使用) です。プリコンパイル済みヘッダーを作成するには /Yc を使用します。/Yc オプションを hdrstop プラグマ (省略可能) と併用すると、ヘッダー ファイルとソース コードの両方をプリコンパイルできます。/Yu オプションは、現在のコンパイルで既存のプリコンパイル済みヘッダーを使用する場合に使用します。/Fp を /Yc オプションと /Yu オプションと共に使用して、プリコンパイル済みヘッダーに別の名前を付けることができます。
/Yu および /Yc のコンパイラ オプションのリファレンス トピックでは、開発環境でこの機能を使用する方法について説明します。
PCH ファイルのビルド
既存の PCH を使って、別の PCH を簡単にビルドできます。
cl -c -Yc"stuff.h" -Fplevel1.pch level1.cpp
cl -c -Yu"stuff.h" -Fplevel1.pch -Yc level2.cpp
level2.cpp ファイルは次のようになります。
#include "stuff.h"
#include "morestuff.h"
#pragma hdrstop("level2.pch")
次のコマンドを実行すると level2.pch がビルドされ、後のコンパイルで使用できます。
cl -c -Yu"morestuff.h" -Fplevel2.pch mysource.cpp
#pragma hdrstop ディレクティブを指定する必要があるのは、2 番目の PCH をビルドするファイルの中だけです。PCH を使用するすべての .cpp ファイルで指定する必要はありません。PCH を使用するファイルは、コマンド ラインで morestuff.h ファイルの名前を指定できます。したがって、このファイルを使用するためにすべてのファイルを変更する必要はありません。自動プリコンパイルでも手動プリコンパイルでも、生成されるプリコンパイル済みコードは、プリコンパイル済みヘッダーに保存されます。
詳細情報
プリコンパイル済みヘッダーを使用するその他の例については、MFC (Microsoft Foundation Class) ライブラリに同梱のサンプル プログラムをビルドするときに使用するメイクファイルを参照してください。