次の方法で共有


/Yl (デバッグ ライブラリの PCH 参照の挿入)

/Yl オプションを指定すると、プリコンパイル済みヘッダー ファイルに一意のシンボルが生成され、そのシンボルへの参照が、プリコンパイル済みヘッダーを使用するすべてのオブジェクト ファイルに挿入されます。

構文

/Yl
/Ylname
/Yl-

引数

name
一意のシンボルの一部として使用される省略可能な名前。

-
ダッシュ (-) を指定すると、/Yl コンパイラ オプションが明示的に無効になります。

解説

/Yl コンパイラ オプションを指定すると、/Yc オプションを使用して作成されたプリコンパイル済みヘッダー ファイル内に、一意のシンボル定義が作成されます。 このシンボルへの参照は、/Yu コンパイラ オプションを使用してプリコンパイル済みヘッダーを含めたすべてのファイルに自動的に挿入されます。 /Yl オプションは、プリコンパイル済みヘッダー ファイルの作成に /Yc が使用されている場合に既定で有効になります。

/Ylname オプションは、プリコンパイル済みヘッダー ファイル内に識別可能なシンボルを作成するために使用されます。 コンパイラは、__@@_PchSym_@00@...@name のように、作成する装飾シンボル名の一部として name 引数を使用します。ここで、省略記号 (...) は、コンパイラによって生成される一意の文字列を表します。 name 引数を省略した場合は、コンパイラによってシンボル名が自動的に生成されます。 通常は、シンボルの名前を知る必要はありません。 ただし、プロジェクトで複数のプリコンパイル済みヘッダー ファイルが使用されている場合は、どのオブジェクト ファイルでどのプリコンパイル済みヘッダーが使用されているかを特定するために、/Ylname オプションが役立つ場合があります。 name を検索文字列として使用することで、ダンプ ファイル内のシンボル参照を検索することができます。

/Yl- を指定すると、既定の動作が無効になり、プリコンパイル済みヘッダー ファイルに識別記号は含められません。 そのプリコンパイル済みヘッダーを含んだコンパイル済みファイルは、共通のシンボル参照を取得しません。

/Yc が指定されていない場合、/Yl オプションは無効になりますが、指定さている場合は、/Yc の指定時に渡されたすべての /Yl オプションと一致する必要があります。

/Yl-/Yc、および /Z7 オプションを使用してプリコンパイル済みヘッダー ファイルをビルドした場合、デバッグ情報は、個別の .pdb ファイルではなく、プリコンパイル済みヘッダーの作成に使用されたソース ファイル用のオブジェクト ファイルに格納されます。 その後、このオブジェクト ファイルがライブラリの一部になった場合は、そのライブラリとプリコンパイル済みヘッダー ファイルを使用するビルドで LNK1211 エラーまたは LNK4206 警告が発生する可能性があります (プリコンパイル済みヘッダー ファイルの作成に使用されたソース ファイルでシンボル自体が定義されていない場合)。 ライブラリ クライアントでオブジェクト ファイル内のものが何も参照されていない場合、リンカーは、オブジェクト ファイルと、関連するデバッグ情報をリンクから除外する可能性があります。 この問題を解決するには、/Yc を使用してプリコンパイル済みヘッダー ファイルを作成する際に、/Yl を指定します (または /Yl- オプションを削除します)。 これにより、デバッグ情報をんだライブラリのオブジェクト ファイルがビルドにリンクされます。

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

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

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

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

  3. [追加のオプション] ボックスに /Ylname コンパイラ オプションを追加します。 [OK] を選択して変更を保存します。

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

関連項目

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