インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
共通シンボルをグローバル定義として扱うかどうかを指定します。
Linux* および macOS*: | -fcommon -fno-common |
Windows*: | なし |
なし
-fcommon |
コンパイラーは、共通シンボルをグローバル定義として扱いません。 |
このオプションは、コンパイラーが共通シンボルをグローバル定義として扱うかどうかを指定します。
-fno-common オプションは、共通シンボルをグローバル定義として扱うようにコンパイラーに指示します。このオプションを使用する際、1 つのモジュールで宣言された 1 つの共通変数のみ利用できます。複数のシンボル定義は、リンク時エラーを起こします。
通常、初期化子がなく、extern または static キーワード "int i;" のないファイルスコープ宣言では、共通シンボルとして表現されます。これらのシンボルは外部参照として扱われます。ただし、他のコンパイル単位にその名前用のグローバル定義がない場合、リンカーはこれらのシンボルにメモリーを割り当てます。
Visual Studio*: なし
Eclipse*: [Data (データ)] > [Allow gprel Addressing of Common Data Variables (共通データ変数の GP-relative アドレス指定を許可する)]
Xcode*: [Data (データ)] > [Allow gprel Addressing of Common Data Variables (共通データ変数の GP-relative アドレス指定を許可する)]
なし