Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用Android NDK修复Eclipse CDT错误“功能’isdigit’无法解决”?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 Eclipse Indigo和 Android / NDK混合项目.我添加了C nature,几乎所有东西都在工作.自动构建工作;也就是说,当我编辑文件时,调用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中遇到的问题是由于eclipse配置问题.以下假设您的C代码使用Ndk_build或ndk_build.cmd(在Windows上)构建正常.

> eclipse juno(4.2)和CDT 8.1版没有任何乐趣.使用eclipse indigo(3.7)@H_674_27@>通过查看“安装新软件”,确保已安装并启用了indigo CDT(版本8.0X).认情况下,在某些下载中安装但未启用indigo.@H_674_27@>当您处理本机代码或本机代码的android配置时,请确保您在eclipse中处于C/C++透视图中,而不是Java中.它具有欺骗性,但Java透视图中只有一部分可用选项.如果您在执行“项目>属性”时看到“C/C++ general”作为选择,则可以确定您是C/C++透视图.@H_674_27@>通常的问题是C/C++ -land中的索引器认为存在错误(例如,构建ndk-build工作正常,通常你甚至可以在控制台窗口看到这个).这是由第一个选项卡上“项目>属性> C/C++常规”的“路径和符号”部分中的错误路径引起的.@H_674_27@>要解决此问题,主要工具是右键单击项目,选择“索引”和“搜索未解析的包含”.这将告诉它找不到哪些文件 – 这些文件通常不是你文件中带有粉红色标记文件.@H_674_27@>要查找正确的文件,请在NDKROOT目录(NDK的安装位置)中进行搜索.一个典型的添加是:${NDKROOT} / platforms / android-9 / arch-arm /usr/include或右侧android-N为你的android目标.由于Android的多个版本和C标准库的副本,NDK中有许多标准包含目录的副本.

两个大警告

>当您更改属性>上的索引器配置时,eclipse中的“未解析的包含”视图不会自动更新. C/C++常规/路径和设置因此请务必每次再次运行它. eclipse中的大多数视图都能正确更新!>此外,eclipse编辑器中源代码视图中的小红色/粉红色错误标记也不会自动更新.您必须以某种方式“触摸”文件才能发现错误现在已修复.

大佬总结

以上是大佬教程为你收集整理的如何使用Android NDK修复Eclipse CDT错误“功能’isdigit’无法解决”?全部内容,希望文章能够帮你解决如何使用Android NDK修复Eclipse CDT错误“功能’isdigit’无法解决”?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。