互換性保持のためのコンパイラー・オプション

インテル® C++ コンパイラーのオプションで gcc* との互換性保持に影響するオプションは次のとおりです。

-gcc-name オプション

-gcc-name=dir は、-cxxlib とともに使用するオプションで、コンパイラーが gcc の C++ ライブラリーを見つけられない場合に gcc の場所をフルパスで指定します。gcc の標準インストールを行わなかった場合、このオプションを使用する必要があります。

-gcc-version オプション

-gcc-version=nnn オプションは、コンパイラーの動作を gcc バージョン nnn と互換にします。-gcc-version オプションは、デフォルトでオンです。nnn の値はシステムにインストールされた gcc のバージョンによって異なります。このオプションは、ABI との互換性が保持される gcc のバージョンを選択します。

インストールされた gcc のバージョン

-gcc-version のデフォルト値

バージョン 3.2 より前

セットされません

3.2

320

3.3

330

3.4

340

4.0

400

4.1

410

4.2

420

4.3

430

-gxx-name オプション

-gxx-name=dir オプションは、C++ コンパイル用の環境設定に使用する g++ コンパイラーを指定します。

-cxxlib オプション

-cxxlib[=dir] オプション (デフォルトではオン) は、gcc コンパイラーに含まれている C++ ライブラリーとヘッダーファイルを使用してアプリケーションをビルドします。次のファイルをインクルードします。

オプションの引数 =dir を使用して、gcc バイナリーとライブラリーのトップレベルの場所を指定します。

Note icon

インテル® C++ コンパイラーは、gcc 3.2、3.3、3.4、4.0、4.1 および 4.2 と互換性があります。

アプリケーションをコンパイルし、リンクして生成された C++ オブジェクト・ファイルおよびライブラリーは、gcc 3.2 以上で生成された C++ オブジェクト・ファイルおよびライブラリーと相互運用が可能です。つまり、インテル® コンパイラーで生成された C++ コードは、gcc 3.2 でビルドされたサードパーティーの C++ ライブラリーとともに使用できます。

Note icon

gcc 3.2、3.3、および 3.4 はそれぞれ互換性がありません。gcc 4.0、4.1、4.2 はそれぞれ互換性があります。デフォルトでは、インテル® コンパイラーはシステムで見つかった gcc のバージョンと互換性のあるコードを生成します。

システムに含まれている gcc のバージョンが 3.2 よりも前の場合、デフォルトでは、インテル® C++ コンパイラーは製品に含まれているヘッダーとライブラリーを使用します。

インテル® C++ ライブラリーに対して共有ライブラリーをビルドし、gnu C++ ライブラリーに対して別の共有ライブラリーをビルドし、1 つのアプリケーションで両方のライブラリーを使用すると、2 つの C++ ランタイム・ライブラリーを使用することになります。アプリケーションは両方のライブラリーからシンボルを使用するため、次の問題が発生します。

インテル® C++ コンパイラーは、1 つのアプリケーションで複数のランタイム・ライブラリーをサポートしていません。

Caution icon警告

複数のランタイム・ライブラリーを使用してアプリケーションのコンパイルが正常に行われた場合でも、特に新しいコードが共有ライブラリーに対してリンクされるとき、アプリケーションは非常に不安定になります。

-fabi-version

-fabi-version=n オプションは、特定の ABI 実装を選択するようにコンパイラーに指示します。デフォルトでは、インテル® コンパイラーはインストールされた gcc のバージョンに対応する ABI 実装を使用します。gcc 3.2 および 3.3 は、ABI に完全対応していません。

n の値

説明

n=0

最新の ABI 実装を選択します

n=1

g++ 3.2 互換の ABI 実装を選択します

n=2

最も適合した ABI 実装を選択します

関連情報