从 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++ 扩展引起的错误,我已经修复了它们。
现在这里是我要解决的问题:
- 如果我切换回正常的 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,该错误也不会消失。 - 调试没有按预期工作。执行确实在给定的断点处停止,但是当我将鼠标悬停在变量上时,它不会显示任何值。在 Indigo 中,它曾经展示过它。在 Eclipse 的各种设置中做了很多试验和错误,但没有运气。还检查了 Window -> Preferences -> C/C++ -> Hovers,但无法在那里更改任何内容。
- 包括
<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