如果我在.cpp文件中选择以下行,则会打开$NDKROOT / platform / android-3 / arch-arm /usr/include / ctype.h:
#include <ctype.h>
(isdigit在此文件中定义)
但是,Eclipse坚持认为isdigit没有定义.我已经阅读了许多帖子,建议静态分析器或索引器都应该受到指责,但我已经尝试了许多建议的解决方案无济于事.
如果我添加如下所示的行,则错误消失,鼠标悬停代码帮助该功能工作:
extern int isdigit(int);
同样,这不是链接器错误或编译器错误 – ndk-build完成且没有错误.这是日食里面的东西.谢谢参观!
编辑:我现在认为这是一个代码分析问题.更好的解决方案是编辑代码分析选项以使“无法解析功能”成为警告而不是错误.这样您可以在“问题”视图中看到警告,但继续工作.如果函数真的丢失了,编译器会告诉你!我还有一个新理论,问题在于符号链接后的代码分析器,因为所有“缺失”函数都在符号链接的包含文件中.会喜欢这个理论的任何意见.
解决方法
我希望它可以帮助你或其他人:
简介:通常,您在eclipse中遇到的问题是由于eclipse配置问题.以下假设您的C代码使用ndk_build或ndk_build.cmd(在Windows上)构建正常.
> eclipse juno(4.2)和CDT 8.1版没有任何乐趣.使用eclipse indigo(3.7)
>通过查看“安装新软件”,确保已安装并启用了indigo CDT(版本8.0X).默认情况下,在某些下载中安装但未启用indigo.
>当您处理本机代码或本机代码的android配置时,请确保您在eclipse中处于C/C++透视图中,而不是Java中.它具有欺骗性,但Java透视图中只有一部分可用选项.如果您在执行“项目>属性”时看到“C/C++ general”作为选择,则可以确定您是C/C++透视图.
>通常的问题是C/C++ -land中的索引器认为存在错误(例如,构建ndk-build工作正常,通常你甚至可以在控制台窗口看到这个).这是由第一个选项卡上“项目>属性> C/C++常规”的“路径和符号”部分中的错误路径引起的.
>要解决此问题,主要工具是右键单击项目,选择“索引”和“搜索未解析的包含”.这将告诉它找不到哪些文件 – 这些文件通常不是你文件中带有粉红色标记的文件.
>要查找正确的文件,请在NDKROOT目录(NDK的安装位置)中进行搜索.一个典型的添加是:${NDKROOT} / platforms / android-9 / arch-arm /usr/include或右侧android-N为你的android目标.由于Android的多个版本和C标准库的副本,NDK中有许多标准包含目录的副本.
两个大警告
>当您更改属性>上的索引器配置时,eclipse中的“未解析的包含”视图不会自动更新. C/C++常规/路径和设置因此请务必每次再次运行它. eclipse中的大多数视图都能正确更新!>此外,eclipse编辑器中源代码视图中的小红色/粉红色错误标记也不会自动更新.您必须以某种方式“触摸”文件才能发现错误现在已修复.