15.7. 各種 Red Hat 製品との C++ の互換性
Red Hat エコシステムには、Red Hat Enterprise Linux および Red Hat Developer Toolset で提供される、GCC コンパイラーおよびリンカーのバージョンが複数含まれます。これらのバージョン間の C++ ABI の互換性は以下のとおりです。
- GCC 4.8 がベースになり、Red Hat Enterprise Linux 7 の一部として直接提供されている システムコンパイラー は、C++98 標準仕様 (C++03 としても知られています)、およびそのバリアント (GNU 拡張あり) へのコンパイルおよびリンクのみをサポートします。
-
-std=c++98
または-std=gnu++98
オプションで明示的に構築された C++98 準拠のバイナリーまたはライブラリーは、使用するコンパイラーのバージョンにかかわらず、自由に組み合わせることができます。 - C++11 および C++14 言語のバージョンの使用および併用は、Red Hat Developer Toolset のコンパイラーを使用しており、それぞれのフラグを使用してコンパイルされたすべての C++ オブジェクトが同じメジャーバージョンの GCC を使用して構築されている場合にのみサポートされます。
- Red Hat Developer Toolset および Red Hat Enterprise Linux ツールチェーンで構築された C++ ファイルをリンクする場合には、Red Hat Developer Toolset バージョンのコンパイラーとリンカーが推奨されます。
-
Red Hat Enterprise Linux 6 および 7、および Red Hat Developer Toolset (バージョン 4.1 まで) のコンパイラーにおけるデフォルト設定は
-std=gnu++98
です。つまり、C++98 と GNU 拡張です。 -
Red Hat Developer Toolset 6、6.1、7、7.1、8.0、8.1、9.0、9.1、10 のコンパイラーのデフォルト設定は
-std=gnu++14
です。つまり、C++14 と GNU 拡張です。
関連資料
- Red Hat Enterprise Linux 7: アプリケーションの互換性ガイド
- ナレッジベースソリューション: Red Hat Enterprise Linux で利用できる gcc バージョン
- Red Hat Developer Toolset User Guide: C++ Compatibility