关闭日食错误(这不是真正的错误)[重复]
Posted
技术标签:
【中文标题】关闭日食错误(这不是真正的错误)[重复]【英文标题】:Turn off eclipse errors (that aren't really errors) [duplicate] 【发布时间】:2013-01-03 01:34:52 【问题描述】:可能重复:Disable Eclipse's error discovery. (Codan false positives)
由于 GCC 4.8/Clang 3.3 C++ 支持远远领先于 Eclipse 在语法检查方面所做的工作(在功能支持方面),Eclipse 将许多东西标记为实际上是有效代码的错误(模板别名恰好是我的主要问题,但还有其他问题)。
当我编译(或尝试编译时,遇到一些问题,请参阅here 了解更多信息)时,任何编译器碰巧正在执行它的工作,并且它的错误会传播,但它说的代码是可以的仍然是下划线(红色和金色蜘蛛分别表示错误和警告),这使得更难看到发生了什么。
有没有办法消除这些错误/警告?
更好的方法是仅在尝试编译后消除警告,并且只要代码的相关部分没有更改,但通常仍保持启用状态。
(实际上最好的 Eclipse 插件应该支持所有的,或者至少比 Juno 本身支持更多的 C++11,但我似乎找不到)
【问题讨论】:
尝试点击这个链接,它帮助了我一段时间,Disable Syntax Checking @JonnyHenly 但我确实想编译它 我对 C++11 没有太多经验,但是否可以只使用 Eclipse 编辑您的类,然后在编译时使用终端或命令提示符手动运行编译器。我知道这将是微不足道的,但我认为这会解决你的问题 那我还不如用Gedit。它完全使日食无用 @soandos 是的,这很烦人。我不明白他们为什么要这样发布 IDE。用户要做的第一件事就是四处搜索并弄清楚如何禁用这个糟糕的功能。查看我的链接答案,它为我解决了这个问题。 【参考方案1】:更新:自从我发布原始答案以来已经很长时间了,它已经过时了。我今天(2014 年 3 月 15 日)仔细检查了:在 Eclipse Kepler(内部版本号 20130614-0229)中足以
在 Project > Properties > C/C++ Build > Settings 下添加,然后在 Tool Settings 选项卡上添加 GCC C++ Compiler > Miscellaneous -std=c++11
标志,
然后在 Discovery 选项卡上的 Window > Preferences > C/C++ > Build > Settings 下选择 CDT GCC Built-in Compiler Settings 和将-std=c++11
标志添加到获取编译器规范的命令。在我的机器上,更改后它看起来像这样:
$COMMAND -E -P -v -dD -std=c++11 "$INPUTS"
清理并重建您的项目和您的索引(Project > C/C++ Index > Rebuild),因为 Eclipse 倾向于缓存错误消息并显示它们尽管更改设置后它们消失了。
这肯定适用于我的机器。如果它不能在你的机器上运行,那么你可能想试一试:C++11 full support on Eclipse 虽然我不确定这是否正确方法也没有必要在我的机器上进行。截至 2014 年 3 月 7 日,用户 claim 表示它对他们有帮助,而上述方法没有。
原帖,现已过时:
罢工>
这些虚假错误来自Codan。整件事是因为 Codan 和编译器对 C++ 的理解不同 Codan 是buggy。
可能的解决方法
单击项目属性,然后单击 C/C++ 常规 > 代码分析 > 语法和语义错误,然后取消选择您遇到的任何错误错误。缺点:你很可能最终将大部分错误和警告一一禁用,这很烦人。
在 C/C++ 常规 > 代码分析 > 语法和语义错误处完全禁用静态分析。您不会从 Codan 获得真正的错误,但只会在稍后从编译器获得。
它们都不是解决方案,但至少您仍然可以使用 Eclipse IDE。
【讨论】:
看起来不错。顺便说一句,我觉得编译器编写者在 Eclipse 甚至能够识别它之前就实现了这些特性是荒谬的。 (很好地抓住了骗局,我的错) @soandos 我发现更可笑的是他们制作了一个单独的独立工具(Codan)来完成编译器的工作。我希望这种情况会随着 clang 而改变,最终静态分析工具(clang 代替 Codan)和编译器(再次 clang)对 C++ 有相同的理解。 @soandos 没问题。如果你不先禁用这个有缺陷的功能,他们不应该发布一个实际上毫无用处的 IDE。 更新后的答案也适用于 gcc 的其他标准选项,例如我使用的:$COMMAND -E -P -v -dD -std=c++11 "$INPUTS"
。此外,在我在 Stack Overflow 上阅读的另一个答案中,它提到将 CDT GCC 内置编译器设置排序到树的顶部。之后,我右键单击该项目并进行了 Index-Rebuild,从而消除了错误。【参考方案2】:
转到 Window->Preferences 将分析写入搜索字段选择 C/C++->Code Analysis ,您可以在此处关闭所有内容。
【讨论】:
以上是关于关闭日食错误(这不是真正的错误)[重复]的主要内容,如果未能解决你的问题,请参考以下文章
我的 android 应用程序的 apk 文件在哪里? (通过日食)[重复]