Eclipse / g ++无法识别" -std = c ++ 11"标志

时间:2015-06-02 18:41:22

标签: c++ eclipse c++11 eclipse-cdt devtoolset

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

我使用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>>设置>>方言>> "其他方言旗"值为" -std = c ++ 11"。

  

调用:GCC C ++编译器制作:***等待未完成的工作....   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:错误:在':'标记

之前的预期初始值设定项

1 个答案:

答案 0 :(得分:3)

如果希望Eclipse使用已安装的devtoolset-2,则需要从启用了devtoolset的环境中启动Eclipse。最明显的是,这可以通过

终端来完成
scl enable devtoolset-2 eclipse &

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