/Yu
(プリコンパイル済みヘッダー ファイルの使用)
現在のコンパイルで既存のプリコンパイル済みヘッダー (.pch
) ファイルを使用するようにコンパイラに指示します。
構文
/Yu
[filename]
引数
filename
#include
プリプロセッサ ディレクティブを使用してソース ファイルに組み込まれるヘッダー ファイルの名前。
解説
プリコンパイル済みヘッダーを作成する /Yc
オプションと、プリコンパイル済みヘッダーの使用を示す後続の /Yu
オプションの両方で、含めるファイルの名前は同じにする必要があります。
/Yc
では、filename はプリコンパイルが停止するポイントを指定します。コンパイラは、filename を使用してすべてのコードをプリコンパイルし、結果のプリコンパイル済みヘッダーに、インクルード ファイルのベース名と .pch
の拡張子を使用して名前を付けます。
.pch
ファイルは /Yc
を使用して作成されている必要があります 。
コンパイラは、.h ファイルの前に発生しているすべてのコードをプリコンパイル済みとして扱います。 .h
ファイルに関連付けられている #include
ディレクティブを超えてスキップし、.pch
ファイルに含まれるコードを使用して、filename の後のすべてのコードをコンパイルします。
コマンド ラインでは、/Yu
と filename の間にスペースは使用できません。
ファイル名なしで /Yu
オプションを指定する場合、ソース プログラムにプリコンパイル済みヘッダー (.pch
ファイル) のファイル名を指定する #pragma hdrstop
プラグマを含める必要があります。 この場合、コンパイラは、/Fp (Name .pch file)
によって指定されたプリコンパイル済みヘッダー (.pch
ファイル) を使用します。 コンパイラは、そのプラグマの場所までスキップし、指定されたプリコンパイル済みヘッダー ファイルからコンパイル済みの状態を復元します。 次に、プラグマの後に続くコードのみをコンパイルします。 #pragma hdrstop
がファイル名を指定しない場合、コンパイラは、.pch
拡張子が付くソース ファイルのベース名から派生した名前を持つファイルを検索します。 /Fp
オプションを使って、別の .pch
ファイルを指定することもできます。
ファイル名を指定せずに /Yu
オプションを指定し、hdrstop
プラグマの指定に失敗した場合は、エラー メッセージが生成され、コンパイルに失敗します。
/Yc
filename および /Yu
filename のオプションが同じコマンド ラインで発生し、両方とも同じファイル名を参照している場合は、/Yc
filename が優先され、名前付きファイルを含むすべてのコードがプリコンパイルされます。 この機能により、メイクファイルの記述が簡略化されます。
.pch
ファイルには、マシン環境に関する情報とプログラムに関するメモリ アドレス情報が含まれているため、.pch
ファイルは、それが作成されたマシン上でのみ使用してください。
プリコンパイル済みヘッダーの詳細については、以下を参照してください。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの .cpp ファイルに
/Yc
(プリコンパイル済みヘッダー ファイルを作成する) を指定します。プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[プリコンパイル済みヘッダー] のプロパティ ページを選択します。
[プリコンパイル済みヘッダー] プロパティ、[ファイルを介した PCH の作成/使用] プロパティ、または [プリコンパイル済みヘッダーの作成/使用] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- PrecompiledHeaderThrough と UsePrecompiledHeader を参照してください。
例
次のコード:
#include <afxwin.h> // Include header for class library
#include "resource.h" // Include resource definitions
#include "myapp.h" // Include information specific to this app
...
をコマンド ライン CL /YuMYAPP.H PROG.CPP
を使用してコンパイルする場合、コンパイラは 3 つの include ステートメントを処理しません。 代わりに、MYAPP.pch
のプリコンパイル済みコードを使用します。このコードを使用すると、3 つのファイル (およびそれらに含まれる可能性があるすべてのファイル) の前処理に必要な時間が節約されます。
名前が /Yc
への filename 引数またはソース ファイルのベース名のいずれかと異なる場合は、次の例のように、/Fp (Name .pch file)
オプションを /Yu
オプションと一緒に使用して、.pch
ファイルの名前を指定できます。
CL /YuMYAPP.H /FpMYPCH.pch PROG.CPP
このコマンドは、MYPCH.pch
という名前のプリコンパイル済みヘッダー ファイルを指定します。 コンパイラは、その内容を使用して、MYAPP.h
を含むすべてのヘッダー ファイルのプリコンパイル済み状態を復元します。 その後、コンパイラは #include "MYAPP.h"
* ディレクティブの後に発生するコードをコンパイルします。