小弟最近需要把某开源库移植到android上去,使用NDK来编译本地代码,但是在代码的编译过程中出了一个这样的错误,还请各位不啬赐教。
当NDK编译本地代码的时候,需要使用两个系统的头文件 stdlib.h 和 unistd.h,在代码编译的时候报错如下:
error: 'getlogin_r' was not declared in this scope
观察NDK 中platforms文件夹里的内容发现,include目录下这个两个头文件都有,所以我考虑出错的原因是没有包含相关的库,也就是在ANdroid.mk文件下 LOCAL_LDLIBS := -lc 应该包含相关的库。但是我找了一圈都没有发现相关的库。请问那位知道能告诉我一下,谢谢各位了。
PS:我使用的ndk版本是android-ndk-r5,我所需要移植开源库是 jrtplib3.9.0 再次谢谢各位了
当NDK编译本地代码的时候,需要使用两个系统的头文件 stdlib.h 和 unistd.h,在代码编译的时候报错如下:
error: 'getlogin_r' was not declared in this scope
观察NDK 中platforms文件夹里的内容发现,include目录下这个两个头文件都有,所以我考虑出错的原因是没有包含相关的库,也就是在ANdroid.mk文件下 LOCAL_LDLIBS := -lc 应该包含相关的库。但是我找了一圈都没有发现相关的库。请问那位知道能告诉我一下,谢谢各位了。
PS:我使用的ndk版本是android-ndk-r5,我所需要移植开源库是 jrtplib3.9.0 再次谢谢各位了
解决方案 »
- 新手找android工作就这么难么
- WebView的问题
- Matrix 旋转图片
- ubuntu下如何搭建android开发环境??
- 关于图片切换的效果
- Android下很多AP之间图片资源能不能共享?图片只加载一次但能被各个AP访问
- 安卓软件会可能有像pc上那种记录键盘输入的木马吗?我手机上要用支付宝之类.不懂安卓,好像安卓软件的权限都很透明?
- 求助:Android驱动开发
- 不在同一个Activity上的ImageView能否绑定同一个ID来实现同一个方法
- android 程序按下home键后 到后台直接退出了。再次点击桌面图标打开是新开的,不会回到上次浏览的页面。
- 用android做一个小的应用
- listview设置固高
inlcude目录下有,那么:
1、你代码有没有 #include <unistd.h>?
2、make文件的include路径对不对?(不过这个可能性比较低,毕竟那是系统头文件)
3、最大可能,getlogin_r是C的函数,而你是cpp的文件
#include <unistd.h>为什么源代码就没问题呢?
可是并没有 extern C...
extern "C"
{
#include <unistd.h>
}