【问题标题】:Eclipse cdt couldn't resolve extern entities in c++ projectEclipse cdt 无法解析 c++ 项目中的外部实体
【发布时间】:2016-03-23 10:06:45
【问题描述】:

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

Bigger one

因此,例如 jni 类型 jint 不会被 eclipse 解析,但是,正如您所见,jni.h 已包含并已解析(我可以 CNTRL+单击它并查看其内容),我已经设置所有需要的包含路径,因此所有文件都按预期包含,但 eclipse 不会从中解析实体。

问题可能出在哪里?

PS。我是使用eclipse进行c++开发的新手,所以我可能会遗漏一些东西,请帮助我,我将不胜感激。

谢谢。

【问题讨论】:

  • 图片的更大版本似乎没有更大,我无法阅读它,所以我无法准确判断您使用的是什么库。在我的回答中,我只是将其称为“JNI”希望您明白这一点。
  • 托德,您需要单击循环使其变大。该问题已通过手动重新索引项目得到解决。

标签: c++ eclipse eclipse-cdt


【解决方案1】:

你还需要告诉 Eclipse 你的 JNI 库在哪里。

如果您从未这样做过,see this wiki entry。链接部分包含图片、箭头和文字,可以引导您完成整个过程。

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

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

【讨论】:

    【解决方案2】:

    正如 krasilich 所说,当链接器面临一个模棱两可的变量并在链接中搞砸时,就会发生这种情况。

    当我遇到这个问题时,我通过重新编辑变量的标题“包含外部声明”暂时解决了这个问题,清理并再次构建,链接器将能够轻松发现并链接它。但永久的解决方案是在 C/C++ General>Paths and Symbols>Includes 中添加包含头文件的工作区/文件夹路径。

    可能的解释取决于编译器和链接器。我试图用 GCC 做到这一点而没有问题。当我使用像 GHS 这样的私有编译器时,特定变量会出现这个问题。

    【讨论】:

      猜你喜欢
      • 2012-08-05
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 2013-09-19
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多