インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド
インテル® C++ コンパイラーは、GNU* コンパイラー・コレクション (gcc) のほとんどのバージョンと互換性があります。リリースノートに互換バージョンの一覧があります。
インテル® C++ コンパイラーで作成された C 言語オブジェクト・ファイルは、gcc* および C/C++ 言語ライブラリーとバイナリー互換です。インテル® C++ コンパイラーまたは gcc* コンパイラーを使用して、オブジェクト・ファイルをリンカーに渡すことができます。インテル® C++ コンパイラーにより生成された疑似オブジェクト・ファイルまたは疑似オブジェクト・ファイルのライブラリーをリンカーに渡すには、インテル® C++ コンパイラーで提供されるリンクツールを使用します。
Linux*/OS X* では、icc、icpc、ifort、xild、および xiar を利用できます。
OS X* では、icl、icl++、xild、および xiar も利用できます
-ffat-lto-objects コンパイラー・オプションによるリンク時の最適化は gcc* との互換性のために提供されています。 これは、オブジェクト・ファイルのリンクとアーカイブに ld と ar を使用できることを意味しますが、これらを使用するとファイル間の最適化は行われません -fno-fat-lto-objects コンパイラー・オプションは、IPO 疑似オブジェクト・ファイルを xild でリンクし、xiar でアーカイブする場合に使用できます。
インテル® C++ コンパイラーは GNU コンパイラーが提供する多くの言語拡張をサポートしています。詳細は、http://www.gnu.org/home.ja.html を参照してください。
式文内に次の項目を置くことが禁止されていることを除き、式文はサポートされています。
動的に初期化されたローカル・スタティック変数
ローカルの非 POD クラス定義
try/catch
可変長配列
インテル® C++ コンパイラーは、アセンブラー・コードが AT&T* System V/386 構文を使用する場合、gcc スタイルのインライン・アセンブリーをサポートします。
あるコンパイラーで生成されたオブジェクト・ファイルやライブラリーが別のコンパイラーで生成されたオブジェクト・ファイルやライブラリーとリンク可能で、生成される実行ファイルが正しく動作する場合、C++ コンパイラーは互換性を保持することができます。インテル® C++ コンパイラーは、GNU* コンパイラーと互換性があります。
インテル® C++ コンパイラーと GNU* gcc コンパイラーは、次の事前定義済みマクロをサポートします。
__GNUC__
__GNUG__
__GNUC_MINOR__
__GNUC_PATCHLEVEL__
これらのマクロを定義しないようにするには、-no-gcc オプションを指定します。 gcc との互換性保持 (-cxxlib) が必要な場合、-no-gcc オプションを使用しないでください。
これらのマクロを定義しないと、システム・ヘッダー・ファイルのパスが使用されます。このような代替パスは、十分にテストされていないか、または互換性がないことがあります。
インテル® C++ コンパイラーでは、次のオープンソース・ツールのサポートが強化されています。
GNU Libtool – パッケージ開発者に汎用共有ライブラリーのサポートを提供するスクリプトです。
Valgrind – x86 系プロセッサー上で、実行ファイルのデバッグとプロファイルを行うための柔軟なシステムです。
GNU Automake – makefile.am というファイルから自動で makefile.ins を作成するツールです。