我可以在工作中访问一个C项目,我必须实现一些东西。我能够将它加载到eclipse中,并且可以将Project -> Build All
it。 编译显示没有错误或警告。 但是在eclipse中,显示了很多错误。 一个例子:
有一个枚举
typedef enum MeasurementType { PN, BB, AM, RES } MEAS_TYPE; MEAS_TYPE type;
在其中一个文件中。 它在其他地方使用并产生如下错误:
最有趣的是,只有AM
似乎是一个问题,而不是PN
或BB
。
我还没有找到令人满意的解决方案。 我已经尝试在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!
以上就是c/c++开发分享eclipse C项目显示错误(符号无法解析),但它编译相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/546454.html