Eclipse之NDK编译——常见错误的解决方法记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Eclipse之NDK编译——常见错误的解决方法记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2344字,纯文字阅读大概需要4分钟。
内容图文
在工程目录下的jni文件夹下编写的c/c++代码在编译时,通常会遇到如下的几种类型错误:
1、Unresolved inclusion:<XXX>
2、syntax error
3、Function ‘XXX‘ could not be resolved
4、Type ‘XXX‘ could not be resolved
5、Symbol ‘XXX‘ could not be resolved
6、Method ‘XXX‘ could not be resolved
7、Invalid arguments ‘Candidates are: ...‘
错误原因:
大多数情况是因为相关头文件没有加入导致,也有一些是因为一些参数无效导致的(当然无效参数也可能是因为头文件未加入,见下述)。
相关错误解决方法——添加头文件:
错误内容一:
1、Unresolved inclusion: <jni.h>、Unresolved inclusion: <stdio.h>、Unresolved inclusion: <malloc.h>、Unresolved inclusion: <android/log.h>、...
2、Function ‘__android_log_print‘ could not be resolved、Type ‘JNIEnv‘ could not be resolved、Type ‘jstring‘ could not be resolved、Type ‘jclass‘ could not be resolved、Function ‘malloc‘ could not be resolved、Function ‘memcpy‘ could not be resolved、Method ‘FindClass‘ could not be resolved、Type ‘jsize‘ could not be resolved、Symbol ‘NULL‘ could not be resolved、...
解决方法:
右击项目 --> Properties --> 左侧C/C++ General --> Paths and Symbols --> 右侧Includes --> GNU C++(.cpp) --> Add
| __>GNU C(.c) __|
${NDKROOT}\platforms\android-18\arch-arm\usr\include
错误内容二:
1、Unresolved inclusion: <iostream>、Unresolved inclusion: <fstream>、Symbol ‘std‘ could not be resolved、..
2、Type ‘fstream‘ could not be resolved、Symbol ‘in‘ could not be resolved、Method ‘seekg‘ could not be resolved、Method ‘read‘ could not be resolved、...
解决方法:
添加路径(步骤见上述解决方法):
${NDKROOT}\sources\cxx-stl\gnu-libstdc++\4.8\include 、${NDKROOT}\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi\include
错误内容三:
Invalid arguments ‘Candidates are:void * malloc(?)‘、Invalid arguments ‘Candidates are:void * memcpy(void *, const void *, ?)‘
解决方法:
添加路径(步骤见上述解决方法):
${NDKROOT}\toolchains\arm-linux-androideabi-4.8\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.8\include
相关错误解决方法——符号替换:
有时编译时会遇到这样的错误提示:Invalid arguments ‘Candidates are:std::basic_istream<char,std::char_traits<char>> & read(char *, ?)‘,尽管我们添加了相应的头文件,但仍然有无效参数这样的错误,错误提示中的‘?’表示无效参数。
碰到这类错误,可以索引到对应函数(ctrl+点击该函数)read,查看函数定义中的参数类型,此函数索引到的头文件中的参数类型为streamsize,但使用时用到的long。
解决方法:
右击项目 --> Properties --> 左侧C/C++ General --> Paths and Symbols --> 右侧Symbols --> GNU C++(.cpp) --> Add
| __>GNU C(.c) __|
Name的值:streamsize,Value的值:long
添加完成后,点击确定后,错误消失。
原文:http://blog.csdn.net/ysuiboli/article/details/43526887
内容总结
以上是互联网集市为您收集整理的Eclipse之NDK编译——常见错误的解决方法记录全部内容,希望文章能够帮你解决Eclipse之NDK编译——常见错误的解决方法记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。