/Yu (プリコンパイル済みヘッダー ファイルの使用)

現在のコンパイルで既存のプリコンパイル済みヘッダー (.pch) ファイルを使用するようにコンパイラに指示します。

構文

/Yu[filename]

引数

filename
#include プリプロセッサ ディレクティブを使用してソース ファイルに組み込まれるヘッダー ファイルの名前。

解説

プリコンパイル済みヘッダーを作成する /Yc オプションと、プリコンパイル済みヘッダーの使用を示す後続の /Yu オプションの両方で、含めるファイルの名前は同じにする必要があります。

/Yc では、filename はプリコンパイルが停止するポイントを指定します。コンパイラは、filename を使用してすべてのコードをプリコンパイルし、結果のプリコンパイル済みヘッダーに、インクルード ファイルのベース名と .pch の拡張子を使用して名前を付けます。

.pch ファイルは /Yc を使用して作成されている必要があります 。

コンパイラは、.h ファイルの前に発生しているすべてのコードをプリコンパイル済みとして扱います。 .h ファイルに関連付けられている #include ディレクティブを超えてスキップし、.pch ファイルに含まれるコードを使用して、filename の後のすべてのコードをコンパイルします。

コマンド ラインでは、/Yufilename の間にスペースは使用できません。

ファイル名なしで /Yu オプションを指定する場合、ソース プログラムにプリコンパイル済みヘッダー (.pch ファイル) のファイル名を指定する #pragma hdrstop プラグマを含める必要があります。 この場合、コンパイラは、/Fp (Name .pch file) によって指定されたプリコンパイル済みヘッダー (.pch ファイル) を使用します。 コンパイラは、そのプラグマの場所までスキップし、指定されたプリコンパイル済みヘッダー ファイルからコンパイル済みの状態を復元します。 次に、プラグマの後に続くコードのみをコンパイルします。 #pragma hdrstop がファイル名を指定しない場合、コンパイラは、.pch 拡張子が付くソース ファイルのベース名から派生した名前を持つファイルを検索します。 /Fp オプションを使って、別の .pch ファイルを指定することもできます。

ファイル名を指定せずに /Yu オプションを指定し、hdrstop プラグマの指定に失敗した場合は、エラー メッセージが生成され、コンパイルに失敗します。

/Ycfilename および /Yufilename のオプションが同じコマンド ラインで発生し、両方とも同じファイル名を参照している場合は、/Ycfilename が優先され、名前付きファイルを含むすべてのコードがプリコンパイルされます。 この機能により、メイクファイルの記述が簡略化されます。

.pch ファイルには、マシン環境に関する情報とプログラムに関するメモリ アドレス情報が含まれているため、.pch ファイルは、それが作成されたマシン上でのみ使用してください。

プリコンパイル済みヘッダーの詳細については、以下を参照してください。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの .cpp ファイルに /Yc (プリコンパイル済みヘッダー ファイルを作成する) を指定します。

  2. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。

  3. [構成プロパティ]>[C/C++]>[プリコンパイル済みヘッダー] のプロパティ ページを選択します。

  4. [プリコンパイル済みヘッダー] プロパティ、[ファイルを介した PCH の作成/使用] プロパティ、または [プリコンパイル済みヘッダーの作成/使用] プロパティを変更します。

このコンパイラ オプションをコードから設定するには

次のコード:

#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"* ディレクティブの後に発生するコードをコンパイルします。

関連項目

MSVC コンパイラ オプション
MSVC コンパイラのコマンド ライン構文