【问题标题】:How to install C++11 C++0x header files on Redhat Enterprise如何在 Redhat Enterprise 上安装 C++11 C++0x 头文件
【发布时间】:2012-03-21 19:31:51
【问题描述】:

我将我的应用程序移动到另一个 Linux 机器上,编译后它返回一个错误提示

#include <atomic> 

无法解决。

我猜新机器上没有安装新的 GNU C++11 头文件/库。

我的问题是如何安装它们?

我在 Redhat Enterprise 上运行,所以 yum 安装?

谢谢。

【问题讨论】:

  • 这个 RHEL 6? (只是确保...)
  • 你的编译器版本是多少?
  • 如果 GCC 版本 >= 4.7,您是否添加了 --std=c++0x--std=c++11
  • gcc (GCC) 4.4.6 20110731(红帽 4.4.6-3)
  • 我添加了--std=c++0x 或--std=c++11

标签: c++ c++11 gnu rhel


【解决方案1】:

Red Hat Developer Toolset 提供 C++11 支持。

(确实,我怀疑这是它存在的主要原因。)

【讨论】:

  • +1 非常好。这里有一个 CentOS 测试版:people.centos.org/tru/devtools
  • 是的,但是您仍然应该小心混合使用 C++11 模式构建的二进制文件和使用 C++98 模式的旧编译器构建的二进制文件。 Reference
【解决方案2】:

RHEL 6自带的gcc版本下的include为:

#include <cstdatomic>

请参阅 gcc 4.4 releaste notes 的运行时库 (libstdc++) 部分。

编辑:这个答案并不完全正确,因为cstdatomic 是 C11 文件而不是 C++11 文件。对于 RHEL 6 中的完整 C++ 支持,应使用 devtoolset

【讨论】:

【解决方案3】:

看来您需要自己安装最新版本的 GCC; RHEL(至少从 6.x 开始)在其存储库中没有支持 C++0x 的 GCC 版本。您可以通过关注GCC's installation instructions 构建最新版本的 GCC,这些版本与发行版无关。

您也可以使用较新的 Fedora 版本中的软件包,该版本通常包含比 RHEL 中提供的更多“前沿”软件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-21
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 2021-10-07
    • 2021-01-02
    相关资源
    最近更新 更多