8

我可以在工作中访问一个 C 项目,我必须在其中实现一些东西。我能够将它加载到 eclipse 中并且可以Project -> Build All。编译显示没有错误或警告。但是在eclipse中,显示了很多错误。一个例子:


有一个枚举

typedef enum MeasurementType {
    PN, BB, AM, RES
} MEAS_TYPE;
MEAS_TYPE type;

在其中一个文件中。它在其他地方使用并产生如下错误: 在此处输入图像描述

最有趣的是,这AM似乎只是一个问题,而不是PNor BB


我还没有找到令人满意的解决方案。我已经尝试包含我能想到的所有可能的目录Project Properties -> C/C++ General -> Paths and Symbols(就像这篇文章所建议的那样),但这并没有帮助。

项目本身是用 Makefiles 编译的(这就是我需要的原因Project -> Build All)。难道是eclipse没有正确解释这些Makefile吗?在把这些东西搞砸了几个小时并且没有向前迈出一步之后,我有点迷失了。

编辑:这是我的构建相关项目属性的一些屏幕截图(至少我相信它们是相关的:D)。如果您需要更多信息,请告诉我。

在此处输入图像描述 在此处输入图像描述

4

4 回答 4

2

由于我收到了 moooeeeeep 的建议,我将在此处发布解决方案。我仍然接受alk的回答,因为他是向我展示正确方向的人。

我的解决方案:

如果我在 eclipse 中单击AM(带有红色下划线的那个)并按F3下去声明,它实际上是问我要去哪个声明。它列出了(正确的)枚举常量以及来自其他地方的一些变量。因此问题是多个声明AM存在于不同的代码位置。

我通过将常量重命名enum为其他东西(AN在我的情况下)来解决这个问题。代码中没有同名的变量,因此 eclipse 能够正确地重构它。

于 2012-11-07T13:49:33.033 回答
2

这是一个相当古老的问题,但我希望这个简短的答案对某人有用。

我在 IDE 中遇到了与枚举类似的错误,但在编译时却没有,这似乎表明 Eclipse 的 Codan 中存在错误。升级到六月发布的新版Eclipse(Neon 4.6)后,错误消失了。只需尝试更新 Eclipse!

于 2016-07-03T15:31:09.730 回答
1

看起来好像 Eclipse(不是 gcc)被设置为解析错误的或一些额外的、可能过时的(包含)源文件。

于 2012-11-07T13:37:50.407 回答
1

在 Eclipse CDT Bugzilla 中添加了关于此问题的错误报告:https ://bugs.eclipse.org/bugs/show_bug.cgi?id=439553

于 2014-07-15T20:50:34.607 回答