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

问题描述 投票:18回答:4

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

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

enter image description here

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

c++ eclipse c++11 eclipse-neon
4个回答
38
投票
  1. 右键单击您的项目,然后单击“属性”
  2. 导航到C / C ++常规和预处理器包括路径,宏等。
  3. 选择Providers选项卡,单击您使用的编译器的编译器设置行。
  4. 将-std = c ++ 11添加到Command以获取编译器规范。
  5. 应用更改。

看起来像这样:

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

5
投票

您还可以执行以下操作

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

或者,

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

1
投票

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

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

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

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

g ++版本为7.2.1


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.