このトピックは、Linux* にのみ適用されます。これは C++ 固有のコンテンツです。DPC++ には適用されません。
インテル® oneAPI DPC++/C++ コンパイラーは、GNU* コンパイラー・コレクション (GCC) のほとんどのバージョンと互換性があります。リリースノートに互換バージョンの一覧があります。
このコンパイラーで作成された C 言語オブジェクト・ファイルは、GCC および C / C++ 言語ライブラリーとバイナリー互換です。インテル® oneAPI DPC++/C++ コンパイラーまたは GCC コンパイラーを使用して、オブジェクト・ファイルをリンカーに渡すことができます。
インテル® oneAPI DPC++/C++ コンパイラーは GNU* コンパイラーが提供する多くの言語拡張をサポートしています。詳細は、http://www.gnu.org/home.ja.html を参照してください。
動的に初期化されたローカル静的変数
ローカルの非 POD クラス定義
try / catch
可変長配列
あるコンパイラーで生成されたオブジェクト・ファイルやライブラリーが別のコンパイラーで生成されたオブジェクト・ファイルやライブラリーとリンク可能で、生成される実行ファイルが正しく動作する場合、C++ コンパイラーは互換性を保持することができます。インテル® oneAPI DPC++/C++ コンパイラーは、GNU* コンパイラーと互換性があります。
インテル® oneAPI DPC++/C++ コンパイラーと GCC は、次の事前定義済みマクロをサポートします。
__GNUC__
__GNUG__
__GNUC_MINOR__
__GNUC_PATCHLEVEL__
これらのマクロを定義しないようにするには、-no-gcc オプションを指定します。GCC との互換性保持 (-cxxlib) が必要な場合、-no-gcc オプションを使用しないでください。
インテル® oneAPI DPC++/C++ コンパイラーは、システム上の GNU* ヘッダーファイル (stdio.h を含む)、GNU* リンカーとライブラリーなどの GNU* ツールを使用します。そのため、システム上の GCC /G++ バージョンと互換性がなければなりません。
デフォルトでは、コンパイラーは、PATH 環境変数を基にインストールされている GCC / G++ バージョンを特定します。
システムのデフォルトの GCC / G++ バージョン以外を使用する場合は、-gcc-name または -gxx-name コンパイラー・オプションで使用する GCC / G++ バージョンを指定する必要があります。次に例を示します。
システムのデフォルトバージョンではコンパイルできず、互換性のためレガシーバージョンを使用しなければならない場合。例えば、システムのデフォルトバージョンと互換性のないサードパーティーのライブラリーを使用する場合。
システムのデフォルトの GCC / G++ よりも新しいバージョンを使用する場合。
インテル® oneAPI DPC++/C++ コンパイラーのドライバーは、GCC / G++ のデフォルトバージョンまたは指定したバージョンを使用して、ヘッダーとライブラリーの場所を特定します。cxxlib オプションは GNU* C++ ライブラリーのリンクに関するもので、-gcc-name や -gxx-name とは直接関係ありません。
-cxxlib-nostd は、コンパイラーが C++ システム include ディレクトリーで C++ 標準ライブラリー libstdc++ を検索しないようにします。例えば、-cxxlib-nostd を指定すると、#include <iostream> はコンパイルせず、#include <stdio.h> はコンパイルします。また、このオプションを指定すると、ドライバーは -lstdc++ オプションを省くため、libstdc++ はリンクされません。
-no-cxxlib は、libstdc++ だけでなく、すべての C++ ライブラリーのリンクに影響します。例えば、printf のみを使用するプログラムは、-no-cxxlib を指定した場合はリンクされませんが、-cxxlib-nostd を指定した場合はリンクされます。
-cxxlib=dir は、バイナリーとライブラリーのトップレベルの場所を変更します。例えば、icx -gxx-name=/my/directory/g++ -cxxlib=/cxxlib/dir を指定すると、ドライバーは /cxxlib/dir/my/directory で G++ を探します。
インテル® oneAPI DPC++/C++ コンパイラーでは、次のオープンソース・ツールのサポートが強化されています。
GNU* Libtool - パッケージ開発者に汎用共有ライブラリーのサポートを提供するスクリプトです。
Valgrind - x86 系プロセッサー上で、実行ファイルのデバッグとプロファイルを行うための柔軟なシステムです。
GNU* Automake - makefile.am というファイルから自動で makefile.ins を作成するツールです。