/Gw (グローバル データの最適化)

グローバル データを最適化のために COMDAT セクションにパッケージ化します。

構文

/Gw[-]

解説

/Gw オプションを指定すると、コンパイル時にグローバル データが個々の COMDAT セクションにパッケージ化されます。 既定では、/Gw は無効になっており、明示的に有効にする必要があります。 明示的に無効にするには、/Gw- を使用します。 /Gw/GL の両方を有効にすると、リンク時に、プログラム全体の最適化を使用して、複数のオブジェクト ファイル間で COMDAT セクションが比較され、それにより、参照されないグローバル データが除外されたり、同一の読み取り専用のグローバル データがマージされたりします。 その結果、生成されるバイナリ実行可能ファイルのサイズが大幅に小さくなることがあります。

コンパイルとリンクを別々に実行するときは、/OPT:REF リンカー オプションを使用することで、/Gw オプションを指定してコンパイルしたオブジェクト ファイル内の参照されないグローバル データを実行可能ファイルから除外できます。

また、/OPT:ICF/LTCG のリンカー オプションを一緒に使用することで、/Gw オプションを指定してコンパイルした複数のオブジェクト ファイルの同一の読み取り専用のグローバル データを実行可能ファイルにマージできます。

詳細については、C++ チーム ブログの「Introducing /Gw Compiler Switch (/Gw コンパイラ スイッチの概要)」を参照してください。

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

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

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

  3. [追加のオプション] プロパティを変更して /Gw を組み込んでから、[OK] をクリックします。

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

関連項目

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