Eclipse cdt无法解析c ++项目中的extern实体

时间:2012-02-16 20:32:24

标签: c++ eclipse eclipse-cdt

eclipse c ++项目的问题是eclipse无法解析外部函数,名称空间,变量等... 请看截图。

enter image description here

Bigger one

所以,例如jni类型jint不能通过eclipse解决,但是,正如您所看到的那样jni.h被包含并解析(我可以CNTRL +点击它并查看其内容),我已经设置了所有需要的包含路径,因此所有文件都按照它们的要求包含在内,但是eclipse不会解析它们中的实体。

哪里可能出现问题?

PS。我是eclipse的c ++开发中的新手,所以我可能会错过一些东西,请帮助我,我会非常感激。

感谢。

2 个答案:

答案 0 :(得分:1)

您还需要告诉Eclipse JNI库的位置。

如果您从未这样做过,see this wiki entry。关于链接的部分有图片,箭头和文本,可以引导您完成整个过程。

一些一般性建议:学习区分编译器错误和链接器错误。如果它是一个编译器错误,那么你可以寻找丢失的包含文件等。当它是一个链接器错误时它意味着它编译并发现所有的标题都很好但是当它去寻找链接到它的实际对象时它无法找到它。这通常意味着您要解决库路径问题。

最后一个警告,我已经看到Eclipse自己更改了工具链设置,我wrote this up in a blog entry如果你想看到我现在总是避免的一个设置面板。

答案 1 :(得分:0)

这发生在krasilich说,当链接器面临一个模糊的变量并且在链接中陷入困境时。

当我通过重新编辑变量的标题“一个包含extern声明”时,我暂时修复了这个问题,再次清理和构建,链接器将能够轻松地发现并链接它。但永久的解决方案是在C / C ++ General>路径和符号>包含中添加包含头文件的工作空间/文件夹路径。

可能的解释是编译器和链接器相关。我试图在没有问题的情况下用GCC做到这一点。当我使用像GHS这样的私有编译器时,特定变量会出现此问题。