15.7. 各种红帽产品的 C++ 兼容性
红帽生态系统包括多个 Red Hat Enterprise Linux 和 Red Hat Developer Toolset 提供的 GCC 编译器和 linker 版本。两者之间的 C++ ABI 兼容性如下:
- 基于 GCC 4.8 且作为 Red Hat Enterprise Linux 7 的一部分提供 的系统编译器 仅支持编译和连接 C++98 标准(也称为 C++03),及其使用 GNU 扩展的功能。
-
任何符合 C++98 的二进制文件或库都使用选项
-std=c++98
或-std=gnu++98
明确构建,无论使用的编译器是什么版本是什么。 - 只有在使用 Red Hat Developer Toolset 中的编译器并使用相应标记构建时,才会支持使用 C++11 和 C++14 语言版本来构建的 C++ 对象。
- 当使用 Red Hat Developer Toolset 和 Red Hat Enterprise Linux 工具链构建 C++ 文件时,首选编译器和 linker 的红帽开发人员工具集版本。
-
Red Hat Enterprise Linux 6 和 7 中编译器的默认设置是
-std=gnu++98
到 4.1。也就是说,使用 GNU 扩展的 C++98。 -
Red Hat Developer Toolset 6、6.1、7、7.1、8.1、9、9、9、9、9、10 和 10 中的编译器的默认设置是
-std=gnu++14
。也就是说,使用 GNU 扩展的 C++14。
其它资源
- 应用程序兼容性 GUIDE
- 知识库解决方案 - Red Hat Enterprise Linux 中提供哪些版本?
- Red Hat Developer Toolset User Guide - C++ 兼容性