我将 Eclipse Indigo 与 Android/NDK 混合项目一起使用。我添加了 C++ 特性,几乎一切正常。自动构建工作;也就是说,当我编辑一个文件时,ndk-build 被调用并成功完成 - 没有构建错误。鼠标悬停代码辅助工作(小窗口弹出有关该功能的信息)。如果我将光标放在包含行上并按 F3,则会打开一个相关的头文件(不是我根据我的配置所期望的头文件,而是一个相关的头文件 - 也许是一个线索?)。
如果我在 .cpp 文件中选择以下行,它将打开 $NDKROOT/platform/android-3/arch-arm/usr/include/ctype.h:
#include <ctype.h>
(isdigit 在此文件中定义)
但是,Eclipse 坚持 isdigit 没有定义。我已经阅读了许多帖子,暗示静态分析器或索引器应该受到指责,但我尝试了许多建议的解决方案都无济于事。
如果我添加如下一行,错误就会消失,并且该函数的鼠标悬停代码辅助工作:
extern int isdigit(int);
同样,这不是链接器错误或编译器错误 - ndk-build 完成时没有错误。这是eclipse里面的东西。谢谢参观!
编辑:我现在认为这是一个代码分析问题。更好的解决方案是编辑代码分析选项,使“无法解析函数”成为警告而不是错误。这样您就可以在“问题”视图中看到警告,但可以继续工作。如果函数真的丢失了,编译器会告诉你的!我还有一个新理论,即问题出在符号链接之后的代码分析器上,因为所有“缺失”的函数都在符号链接的包含文件中。希望对这个理论有任何意见。