インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

OpenMP* のソース互換性とその他のコンパイラーとの互換性

インテル® C++ コンパイラーには、次に示すコンパイラーの特定のバージョンにより提供される OpenMP* サポートとオブジェクト・レベル互換のある OpenMP* ライブラリーが含まれます。

オブジェクト・レベルの互換性とは、あるコンパイラーで生成されたオブジェクト・ファイルと別のコンパイラーで生成されたライブラリーで作成された実行ファイルが正常に動作することを意味します。これに対し、ソース互換とはアプリケーション全体が 1 つのコンパイラーによりコンパイル、リンクされ、ソースを修正しなくても実行ファイルが正常に動作することを意味します。

コンパイラーが異なるとサポートされる OpenMP* 仕様も異なります。アプリケーションが使用する OpenMP* 機能に基づいて、どのバージョンの OpenMP* 仕様が必要かを判断してください。すべてのコンパイラーによりサポートされている OpenMP* 仕様レベルと等しいか、またはそれ以下の OpenMP* 仕様をアプリケーションで採用している場合は、すべてのコンパイラーとソース互換があります。ただし、すべてのオブジェクト・ファイルとライブラリーを同じコンパイラーの OpenMP* ライブラリーでリンクする必要があります。

インテルの OpenMP* ランタイム・ライブラリーは、以下の OpenMP* サポートとのソース互換とオブジェクト・レベルの互換性を提供します。

インテル® コンパイラーの異なるバージョンを使用する際のガイドライン

リンク時または実行時の問題を回避するには、次の点に注意してください。

インテル® C++ コンパイラーとその他のコンパイラーを併用する際のガイドライン

リンク時または実行時の問題を回避するには、次の点に注意してください。

OpenMP* ライブラリーをその他のコンパイラーで使用する際の制限

オブジェクト・レベルの互換性における threadprivate オブジェクトの制限は次のとおりです。

関連情報