编辑:事实证明这确实不是 Eclipse Kepler 特有的。我必须对 Eclipse Juno 使用相同的过程。问题是,在回答同一问题的其他帖子中似乎缺少步骤。
我正在使用 Eclipse Kepler for C++,并尝试使用 C++11 并收到错误。当我编译时出现错误
错误:C++98 模式下不允许基于范围的 for 循环
我已按照帖子中的说明进行操作
Eclipse CDT C++11/C++0x 支持
并且为 Eclipse Juno 提供的解决方案不起作用。
不同的评论建议重新启动 eclipse 并清理和重建。但这并没有产生什么影响。
您必须做两件事,首先您需要设置编译器,然后需要设置 CDT 的语言处理器。由于您没有提及您正在使用哪个编译器,因此我假设它是 GCC,但其他编译器的步骤类似。 (当然,请注意,您需要一个支持 C++11 的编译器。)
设置编译器相当简单:
- 右键单击您的项目,然后单击“属性”
- 在 C/C++ 构建下单击设置
- 在 GCC C++ 编译器下,单击其他
- 在“其他标志”框中,将“-std=c++11”附加到标记列表中。
- 单击应用并确定
此时,您应该能够重建项目并使其运行。但 CDT 仍然可能显示 C++11 包含的错误。您可以通过以下方法解决该问题:
- 右键单击您的项目,然后单击“属性”
- 在 C/C++ 常规下单击“预处理器包括路径、宏”
- 选择提供商选项卡
- 列表中应该有一个项目显示类似“GCC 内置编译器设置”之类的内容。选择该条目。
- 取消选中“使用全球提供商...”选项
- 列表下方有一个框,上面写着“获取编译器规范的命令”。将“-std=c++0x”附加到此。
- 使用右侧的“上移”按钮将“GCC 内置编译器设置”提供程序移至列表顶部。
- 单击“应用”,然后单击“确定”。
- 返回 Eclipse 工作区,选择“项目菜单”、“C/C++ 索引”,然后单击“重新解决未解决的包含”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)