Visual Studio 2017 を使用することをお勧めします

/Gy (関数レベルのリンクの有効化)

 

公開日: 2016年7月

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

各関数をパッケージ化された関数 (COMDAT) 形式でパッケージ化します。

/Gy[-]  

リンカーでは、DLL または .exe ファイルの各関数を除外したり順序付けたりするために、その関数を COMDAT として別にパッケージ化する必要があります。

リンカー オプションの /OPT (最適化) を指定すると、.exe ファイルから未参照のパッケージ化された関数が除外されます。

リンカー オプションの /ORDER (関数の順序) を指定すると、パッケージ化された関数が指定された順序で .exe ファイルに含められます。

インライン関数は、呼び出しとしてインスタンス化される場合は (たとえば、インライン化が無効な場合や関数のアドレスを取得する場合など)、常にパッケージ化されます。 また、C++ のクラス宣言内で定義されているメンバー関数は、自動的にパッケージ化されます。ただし、他の関数は自動的にはパッケージ化されないため、このオプションを指定してこれらの関数をパッケージ化します。

System_CAPS_ICON_note.jpg メモ

エディット コンティニュに対して /ZI オプションを使用すると、/Gy オプションが自動的に設定されます。

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

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。

  2. [C/C++] フォルダーをクリックします。

  3. [コード生成] プロパティ ページをクリックします。

  4. [関数レベルでリンクする] プロパティを変更します。

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

コンパイラ オプション
コンパイラ オプションの設定

表示: