1

从 Indigo 切换后,Ubuntu 12.04 中的最新 Eclipse Juno 面临各种问题。
我在以下位置设置了标志:
项目 -> 属性 -> C/C++ 构建 -> 设置 -> 工具设置 -> 跨 G++ 编译器

  • -> 杂项:-std=c++11
  • -> 预处理器:(__GXX_EXPERIMENTAL_CXX0X__也在 C/C++ General -> Paths and Symbols 中设置)

目前,我正在编译在 Indigo 中使用 C++03 编译良好的代码。更改为 C++11 后,我确实遇到了一些可能是由于 g++ 扩展引起的错误,我已经修复了它们。

现在这里是我要解决的问题:

  1. 如果我切换回正常的 C++ 编译,那么我会收到一个错误: 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. 即使使用干净的构建或重新启动 Eclipse,该错误也不会消失。
  2. 调试没有按预期工作。执行确实在给定的断点处停止,但是当我将鼠标悬停在变量上时,它不会显示任何值。在 Indigo 中,它曾经展示过它。在 Eclipse 的各种设置中做了很多试验和错误,但没有运气。还检查了 Window -> Preferences -> C/C++ -> Hovers,但无法在那里更改任何内容。
  3. 包括<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

4

1 回答 1

1

首先,我从全新安装开始,作为未来参考,我想展示如何从头开始安装和使用 GCC 和 Eclipse。

首先到Ubuntu软件中心,下载最新版本的GCC,即GCC 4.8。现在,您这样做可能会遇到问题,因此我建议您在gcc-4.8尝试查找软件时输入。与 g++ 相同,您输入g++4.8即可获得所需的内容。确保您拥有正确的版本。由于 Linux 的开源特性,往往存在很多涉及版本的问题。

-> : 按回车

现在,打开您的终端,然后输入以下内容:

  • sudo su --> 这会给你特殊的root权限。
  • 现在它会询问您的密码,输入->
  • !警告,这部分不要出错,因为root会造成很大的伤害!
  • 现在更改您的目录,输入cd /usr/bin->
  • 输入ls -l gcc* g++* cpp*->
  • 这将向您显示这些数据类型可用的符号链接
  • 输入ln -s g++-4.8 g++->
  • 输入rm cpp gcc->
  • ln -s gcc-4.8 gcc->
  • ln -s cpp-4.8 cpp->
  • 现在CTRL+ D,两次,这将使您离开终端。

现在,打开eclipse。转到首选项>新建 CDT 向导(或类似的) 在此处输入图像描述 确保选择了 Linux GCC。使按Make Toochains preferred。现在,当您打开一个项目时,请确保您转到项目属性,然后执行以下操作:

  • C/C++ 构建 > 设置 > 杂项。> 在其他标志下添加这个-std=c++11在此处输入图像描述

  • 与 GCC C 编译器相同,但这次,您添加-std=gnu11

这应该设置一切。不要使用 Cross GCC,它总是给我带来问题。

于 2013-04-23T13:19:24.500 回答