eclipse C项目显示错误(符号无法解析),但它编译

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


有一个枚举

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

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

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


我还没有找到令人满意的解决方案。 我已经尝试在Project Properties -> C/C++ General -> Paths and Symbols包含我能想到的所有可能的目录Project Properties -> C/C++ General -> Paths and Symbols (如本文所示),但这没有帮助。

项目本身是用Makefile编译的(这就是我需要Project -> Build All )。 是不是eclipse没有正确地解释那些Makefile呢? 经过几个小时搞乱这些东西并且没有前进一步后,我有点迷失了。

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

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

看起来Eclipse(不是gcc)设置为解析错误的或一些附加的,可能过时的(包含)源文件。

由于我从moooeeeep得到了一个建议,我将在这里发布解决方案。 我仍然接受了alk的回答,因为他是向我展示正确方向的人。

我的解决方案

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

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

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

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

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