/Gy (関数レベルのリンクの有効化)
各関数をパッケージ化された関数 (COMDAT) 形式でパッケージ化します。
/Gy[-]
解説
リンカーでは、DLL または .exe ファイルの各関数を除外したり順序付けたりするために、その関数を COMDAT として別にパッケージ化する必要があります。
リンカー オプションの /OPT (最適化) を指定すると、.exe ファイルから未参照のパッケージ化された関数が除外されます。
リンカー オプションの /ORDER (関数の順序) を指定すると、パッケージ化された関数が指定された順序で .exe ファイルに含められます。
インライン関数は、呼び出しとしてインスタンス化される場合は (たとえば、インライン化が無効な場合や関数のアドレスを取得する場合など)、常にパッケージ化されます。また、C++ のクラス宣言内で定義されているメンバー関数は、自動的にパッケージ化されます。ただし、他の関数は自動的にはパッケージ化されないため、このオプションを指定してこれらの関数をパッケージ化します。
[!メモ]
エディット コンティニュに対して /ZI オプションを使用すると、/Gy オプションが自動的に設定されます。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダーをクリックします。
[コード生成] プロパティ ページをクリックします。
[関数レベルでリンクする] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- EnableFunctionLevelLinking を参照してください。