/Yd (デバッグ情報のオブジェクト ファイルへの取り込み)

/Yc および /Z7 オプションと共に使用すると、プリコンパイル済みヘッダー (.pch) ファイルから作成されたすべてのオブジェクト ファイルに、詳細なデバッグ情報を取り込みます。 削除されました。

構文

/Yd

解説

/Yd は非推奨です。Visual C++ では、単一の .pdb ファイルへの複数のオブジェクトの書き込みがサポートされるようになりました。代わりに /Zi を使用してください。 非推奨のコンパイラ オプションの一覧については、「カテゴリ別のコンパイラ オプション」の「非推奨および削除されたコンパイラ オプション」をご覧ください。

デバッグ情報を含むライブラリを配布する必要がない限り、/Z7 および /Yd ではなく /Zi オプションを使用します。

すべての .obj ファイルに詳細なデバッグ情報を格納する必要があるのは、デバッグ情報を含むライブラリを配布する場合だけです。 コンパイルが遅くなり、かなりのディスク領域が必要です。 /Yd なしで /Yc/Z7 を使用すると、コンパイラでは.pch ファイルから作成された最初の .obj ファイルに一般的なデバッグ情報が格納されます。 コンパイラでは、後で .pch ファイルから作成される .obj ファイルにこの情報を挿入しません。情報への相互参照が挿入されます。 .pch ファイルを使用する .obj ファイルの数に関係なく、一般的なデバッグ情報を含む .obj ファイルは 1 つのみです。

この既定の動作の結果、ビルド時間が短縮されて必要なディスク領域が減りますが、わずかな変更によって、一般的なデバッグ情報を含む .obj ファイルのリビルドが必要になる場合、これは望ましくありません。 この場合、コンパイラでは、元の .obj ファイルへの相互参照を含むすべての .obj ファイルをリビルドする必要があります。 また、共通の .pch ファイルがさまざまなプロジェクトで使用される場合、1 つの .obj ファイルへの相互参照に依存することは困難です。

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

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

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

  2. [構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。

  3. [追加のオプション] ボックスにコンパイラ オプションを入力します。

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

F.cpp と G.cpp という 2 つの基本ファイルがあり、それぞれに次の #include ステートメントが含まれているとします。

#include "windows.h"
#include "etc.h"

次のコマンドでは、プリコンパイル済みヘッダー ファイル ETC.pch とオブジェクト ファイル F.obj を作成します。

CL /YcETC.H /Z7 F.CPP

オブジェクト ファイル F.obj には、WINDOWS.h と ETC.h (および含まれるその他のヘッダー ファイル) の型とシンボル情報が含まれています。 プリコンパイル済みヘッダーの ETC.pch を使用して、ソース ファイル G.cpp をコンパイルできるようになりました。

CL /YuETC.H /Z7 G.CPP

オブジェクト ファイル G.obj には、プリコンパイル済みヘッダーのデバッグ情報は含まれておらず、単に F.obj ファイル内のその情報を参照します。 F.obj ファイルとリンクする必要があることに注意してください。

プリコンパイル済みヘッダーが /Z7 でコンパイルされていない場合でも、/Z7 を使用して後のコンパイルで使用できます。 ただし、デバッグ情報は現在のオブジェクト ファイルに配置され、プリコンパイル済みヘッダーで定義されている関数と型のためのローカル シンボルはデバッガーでは使用できません。

関連項目

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