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

インテル(R) 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

-cxxlib-gcc オプション

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

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

インテル C++ コンパイラーは、gcc 3.2、3.3、3.4、および 4.0 と互換性があります。これらのバージョンのいずれかを使用する場合、-cxxlib-gcc オプションはデフォルトでオンです。

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

-cxxlib-gcc オプションは gcc 3.2 を含む Linux* ディストリビューションでのみ使用することができます。これは C++ ABI 規格で必要です。

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

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

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

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

警告

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

アプリケーションが g++ で生成されたソースファイルとインテル C++ コンパイラーで生成されたソースファイルを含む場合、-cxxlib-gcc オプションを使用するようにしてください。このオプションは、1 セットのランタイム・ライブラリーでビルドするため、インテル・コンパイラーに g++ ライブラリーとヘッダーファイルを使用するように指示します。この結果、プログラムは正常に動作するようになります。

-cxxlib-icc オプション

-cxxlib-icc オプションは、インテル・コンパイラーに含まれている C++ ライブラリーとヘッダーファイルを使用してアプリケーションをビルドします。次のファイルをインクルードします。

gcc 3.2 より前のバージョンを使用している場合、-cxxlib-icc オプションはデフォルトでオンです。

-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 実装を選択します

関連情報