我使用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:错误:在':'标记
之前的预期初始值设定项
答案 0 :(得分:3)
如果希望Eclipse使用已安装的devtoolset-2
,则需要从启用了devtoolset
的环境中启动Eclipse。最明显的是,这可以通过
scl enable devtoolset-2 eclipse &
解释:devtoolset
作为替代开发环境安装,默认情况下不处于活动状态。只有在显式激活时,您才会获得理解-std=c++11
的新编译器版本以及您正在寻找的功能。