【发布时间】:2012-06-01 02:28:18
【问题描述】:
我将 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里面的东西。感谢您的观看!
编辑:我现在认为这是一个代码分析问题。更好的解决方案是编辑代码分析选项以使“无法解析功能”成为警告而不是错误。这样您就可以在“问题”视图中看到警告,但可以继续工作。如果函数真的丢失了,编译器会告诉你的!我还有一个新理论,即问题出在符号链接之后的代码分析器上,因为所有“缺失”的函数都在符号链接的包含文件中。希望对这个理论有任何意见。
【问题讨论】:
-
我猜这将在 Kepler 中修复?
标签: android eclipse android-ndk java-native-interface eclipse-cdt