3

我正在使用 Eclipse Luna 和 g++ 4.7.2(由devtoolset-2提供)运行 CentOS 6.6 x64。我正在使用 Eclipse 内置的自动生成文件。

我已经使用 scl enable devtoolset-2 bash 启用了 g++ 4.7.2

[me@dev ~]# g++ --version g++ (GCC) 4.7.2 20121015 (Red Hat 4.7.2-5) 版权所有 (C) 2012 Free Software Foundation, Inc. 这是免费软件;查看复制条件的来源。没有保修;甚至不考虑适销性或特定用途的适用性。

不幸的是,在编译时,Eclipse 会抛出错误,说“-std=c++11”不是一个有效的选项。我已经在项目属性>> C/C++ Build >> Settings >> Dialect >>“Other dialect flags”下设置了方言,值为“-std=c++11”。

调用:GCC C++ 编译器 make:*** 等待未完成的作业.... g++ -std=c++11 .... cc1plus:错误:无法识别的命令行选项“-std=c++11”

我尝试使用带有“-std=c++0x”的“语言标准”选项,但编译时会抛出错误

map<int, MyObject*> myObjectMap; 
// assume I've added in objects before the loop
for (const auto& kv : myObjectMap) // line 249
{
    // do things
}

249:错误:“:”标记之前的预期初始化程序

4

1 回答 1

3

如果您希望 Eclipse 与已安装devtoolset-2devtoolset. 最明显的是,这可以从终端完成

scl enable devtoolset-2 eclipse &

解释:devtoolset作为替代开发环境安装,默认情况下活动。只有当显式激活时,您才会获得新的编译器版本,它可以理解-std=c++11和您正在寻找的功能。

于 2015-06-02T19:07:08.153 回答