/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 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。
[追加のオプション] ボックスにコンパイラ オプションを入力します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。AdditionalOptions
例
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 を使用して後のコンパイルで使用できます。 ただし、デバッグ情報は現在のオブジェクト ファイルに配置され、プリコンパイル済みヘッダーで定義されている関数と型のためのローカル シンボルはデバッガーでは使用できません。