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