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

时间:2012-11-07 11:44:36

标签: c eclipse indexing

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


有一个枚举

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

在其中一个文件中。它在其他地方使用并产生如下错误: enter image description here

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


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

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

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

enter image description here enter image description here

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

我的解决方案:

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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