从Indigo切换后,面对Ubuntu 12.04中最新Eclipse Juno的各种问题。
我在下面设置了标志:
项目 - >属性 - > C / C ++ Build - >设置 - >工具设置 - >交叉G ++编译器
-std=c++11
__GXX_EXPERIMENTAL_CXX0X__
(也在C / C ++中设置 - >路径和符号)目前,我正在编译在Indigo中用C ++ 03编译的代码。在更改为C ++ 11之后,我确实得到了一些错误,这些错误可能是由于g ++扩展,我修复了它们。
现在我想解决的问题是:
This file requires compiler and library support for the \ ISO C++
2011 standard. This support is currently experimental, and must be \
enabled with the -std=c++11 or -std=gnu++11 compiler options.
文件c++0x_warning.h
。即使使用,错误也不会消失
清理构建或重新启动日食。<unrodered_map>
的工作正常,但是如果
使用std::unordered_map<>
然后它开始给出错误。目前,
我最不关心这个问题。如果有人可以建议使用Eclipse(Juno)进行有效调试的链接或方法,那么它对未来的访问者也会有很大的帮助。
注意:我在SO中引用了几个线程,但没有一个是有用的:
Eclipse CDT C++11/C++0x support
Cannot set Eclipse Juno C++ with std=c++11
Eclipse CDT Juno - Toolchain issue
答案 0 :(得分:1)
首先,我开始全新安装,作为未来参考,我想展示如何从头开始安装和使用GCC。
首先访问Ubuntu软件中心,下载最新版本的GCC,即GCC 4.8。现在,您可能会遇到问题,因此我建议您在尝试查找软件时键入gcc-4.8
。与g ++相同的是,你输入g++4.8
来获得你想要的东西。确保您拥有正确的版本。由于Linux的开源特性,涉及版本的问题往往很多。
- &GT; :按回车
现在,打开终端,输入以下内容:
sudo su -
- &gt;这将为您提供特殊的root权限。cd /usr/bin
- &gt; ls -l gcc* g++* cpp*
- &gt; ln -s g++-4.8 g++
- &gt; rm cpp gcc
- &gt; ln -s gcc-4.8 gcc
- &gt; ln -s cpp-4.8 cpp
- &gt; 现在,打开日食。转到首选项&gt;新CDT向导(或类似的东西)
确保选择了Linux GCC。按下Make Toochains preferred
。
现在,当您打开一个项目时,请确保转到项目属性,然后执行以下操作:
C / C ++ Build&gt;设置&gt;杂项。 &GT;在其他flages下添加此-std=c++11
。
与GCC C编译器相同,但这一次,您添加了-std=gnu11
应该把一切都搞定。不要使用Cross GCC,它总是给我带来麻烦。