【发布时间】:2012-05-08 23:16:42
【问题描述】:
我正在尝试将我的 C++ 编译器更新为 C++11。
我搜索了一下,得出的结论是我必须使用标志-std=c++0x或-std=gnu++0x,但我对标志的了解并不多。谁能帮我? (我使用的是 Ubuntu 12.04。)
这是我尝试使用 C++11 中包含的库(即数组)时从编译器得到的错误:
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr = {2, 3, 5};
...
}
此文件需要编译器和库支持即将推出的 ISO C++ 标准 C++0x。此支持目前处于试验阶段,必须使用 -std=c++0x 或 -std=gnu++0x 编译器选项启用。
【问题讨论】:
-
在最新版本中,您可能必须改用
-std=c++11。不过,也许两者都是允许的。 -
这错过了很多上下文。显示您尝试过的完整命令(甚至可能是您尝试编译的示例代码),以及实际失败的内容。
-
@classdaknok_t: 两者都应该被允许,ubuntu 12.04 也默认提供
g++-4.6(仅支持-std=c++0x) -
在
g++之后添加标志,例如g++ -std=c++0x _filename_ && ./a.out. -
看到这篇文章,搜索标题为错误消息。我正在做一个 QMAKE 项目,我的解决方案是将 CONFIG += c++11 添加到 .pro 文件中。