如何在Eclipse Neon中启用C ++ 11语法?

时间:2016-08-25 00:18:42

标签: c++ eclipse c++11 eclipse-neon

我正在Eclipse Neon中开发C + 11代码,并且今天注意到C + 11中引入的基于for循环的范围被IDE突出显示为红色,表示它无法识别它。

我找到了多个关于如何为旧版CDT执行此操作的链接(Eclipse CDT C++11/C++0x support)您可以看到没有“工具设置”标签。

enter image description here

有人可以建议如何配置我的项目,以便正确突出显示C ++ 11语法(我使用的是单独的构建系统)

5 个答案:

答案 0 :(得分:38)

  1. 右键单击您的项目,然后单击属性
  2. 导航到C / C ++常规和预处理器包含路径,宏等。
  3. 选择Providers选项卡,单击您使用的编译器的编译器设置行。
  4. 将-std = c ++ 11添加到Command以获取编译器规范。
  5. 应用更改。
  6. 看起来像这样:

    ${COMMAND} -E -P -v -dD "${INPUTS}" -std=c++11
    

答案 1 :(得分:5)

您还可以执行以下操作

  1. 转到项目属性(alt enter)
  2. 在左侧窗格中,滚动到“C / C ++ Build”,折叠它,选择设置。
  3. 在右侧窗格中,选择并折叠工具下的编译器 设置菜单,选择“方言”,从中选择您的语言标准 下拉,或在“其他方言标志”文本中输入-std = c ++ 11 输入
  4. 可替换地,

    1. 属性 - > “C / C ++ Build” - >折叠并选择“设置”
    2. 在“工具设置”选项卡下,选择您的编译器,然后突出显示 “杂项”字段。
    3. 将-std = c ++ 11添加到“其他标志”输入字段。

答案 2 :(得分:1)

由于我不明白的原因,在搜索为什么我的Fedora 27上运行的Eclispe Oxygen + CDT 9.3.2无法可靠地调试我的代码的线索时,谷歌提出了这个问题/答案。

基本上我的问题是,使用C ++ 11特性(特别是shared_ptr)的一个相当简单的C ++程序在Fedora 27(具有gdb版本8.0.1)的Eclipse Oxygen 2 + CDT 9.3.2中是不可调试的。从标准包repo安装)。进入几个方法调用导致挂起的调试会话,没有任何进行,终止Eclipse恢复。

如果我在命令行上使用gdb调试二进制文件,那么一切都很好;我可以设置断点等,一切都按预期工作。但是从Eclipse内部来看,没什么可做的。

然而,如安德烈亚斯所示,将-std = c ++ 11放入项目设置中解决了这个问题。我很少知道为什么。我以为我会把它放在一起以防其他人遇到类似的问题。

g ++版本为7.2.1

答案 3 :(得分:0)

出于某种原因编辑全局c ++编译器设置对我不起作用。按照说明修改项目特定设置确实有效。请参阅:Eclipse CDT C++11/C++0x support

答案 4 :(得分:0)

如果以上方法均不适合您: 只要检查是否

Properties > C/C++ Build > Settings > Tool Settings tab > Dialect

确认在语言标准下拉菜单中是否具有“ ISO C ++ 11 ...” 选项。

如果是,则选择>应用并关闭。

我希望这会起作用。