我正在 Eclipse Neon 中开发 C+11 代码,今天注意到 C+11 中引入的基于范围的 for 循环被 IDE 突出显示为红色,表明它无法识别它。
我找到了多个关于如何为旧版本的 CDT 执行此操作的链接,例如(Eclipse CDT C++11/C++0x 支持)您可以看到虽然没有“工具设置”选项卡。
有人可以建议如何配置我的项目以便正确突出显示 C++11 语法(我使用的是单独的构建系统)
我正在 Eclipse Neon 中开发 C+11 代码,今天注意到 C+11 中引入的基于范围的 for 循环被 IDE 突出显示为红色,表明它无法识别它。
我找到了多个关于如何为旧版本的 CDT 执行此操作的链接,例如(Eclipse CDT C++11/C++0x 支持)您可以看到虽然没有“工具设置”选项卡。
有人可以建议如何配置我的项目以便正确突出显示 C++11 语法(我使用的是单独的构建系统)
看起来像这样:
${COMMAND} -E -P -v -dD "${INPUTS}" -std=c++11
您还可以执行以下操作
或者,
由于我不明白的原因,在寻找关于为什么我在 Fedora 27 上运行的 Eclispe Oxygen + CDT 9.3.2 无法可靠地调试我的代码的线索时,Google 提出了这个问题/答案作为要查看的内容。
基本上我的问题是,一个相当简单的 C++ 程序,使用 C++ 11 特性(特别是 shared_ptr),在 Fedora 27 之上的 Eclipse Oxygen 2 + CDT 9.3.2 中是不可调试的(从标准包回购)。进入几个方法调用导致调试会话挂起,没有任何反应,终止 Eclipse 以恢复。
如果我在命令行上使用 gdb 调试二进制文件,一切都很好;我可以设置断点等,一切正常。但是从 Eclipse 内部,什么也没做。
但是,如 Andreas 所示,将 -std=c++11 放入项目设置中解决了该问题。我不知道为什么。我想我会提出这个,以防其他人遇到类似的问题。
g++ 版本为 7.2.1
出于某种原因,编辑全局 c++ 编译器设置对我不起作用。按照说明修改项目特定设置确实有效。请参阅:Eclipse CDT C++11/C++0x 支持
如果以上都不适合您:请检查是否
Properties > C/C++ Build > Settings > Tool Settings tab > Dialect
确认语言标准下拉菜单中是否有“ISO C++11 ...”选项。
如果是,则选择 > 应用并关闭。
我希望这会奏效。