android ndk开发支持64位时遇到undefined reference to `__system_property_get'
来源:互联网 发布:南征北战抄袭知乎 编辑:程序博客网 时间:2024/05/16 15:31
android 做守护进程时用ndk实现,但是打包执行文件时要支持android5.1以上的64位手机时遇到undefined reference to `__system_property_get',打包不成功,最后百度谷歌找到http://www.bubuko.com/infodetail-1014879.html这篇文章看到问题原因和解决方案,原文原因:
下面这一系列的函数在arm64的头文件有定义,但是在libc.so中却找不到实现。
header: sys/system_properties.h
__system_property_get
__system_property_set
__system_property_find
__system_property_read
__system_property_find_nth
__system_property_foreach
编译64位的arm平台的库的时候报了一个这样的链接错误,__system_property_get是Android NDK提供的一个函数,32位上一直都是ok的,编译64的时候既然会报这个错误,readelf查看64位的libc.so确实找不到这个符号
原文解决办法:
找到一台arm平台的Android 5.1的设备或虚拟机,把/system/lib64/libc.so取出替换NDK里面的库即可
但是具体解决时还是遇到一点需要注意的问题:你要打64位的so库,那么你的ndk环境得是ndk-r10以上64位的,具体下载地址(http://download.csdn.net/detail/guangzhen87/8500163),然后你要打支持arm64的so就去找一台arm平台的Android 5.1的设备或虚拟机,把/system/lib64/libc.so取出(复制不需要root权限哈,下个es文件浏览器就看得到了)替换ndk目录下面的platforms文件夹里面数字最大的android库的arm64文件夹最里面lib目录下libc.so(比如我的d:\android-ndk-r10d-windows-x86_64\platforms\D:\Tools\android-ndk-r10d-windows-x86_64\platforms\android-21\arch-arm64\usr\lib\libc.so),然后你要支持x86_64,mips64平台,找到对应版本的机子里面libc.so文件做相应的替换编译就ok了!
这是我找到的libc.so的,arm64的哦,不要搞错了http://download.csdn.net/detail/luoyong123456/9418548
- android ndk开发支持64位时遇到undefined reference to `__system_property_get'
- 【ndk开发】undefined reference to `android_log_print'
- undefined reference to 'htons' Android NDK错误
- 【Android-NDK】错误 undefined reference to '__atomic_fetch_add_4'
- android studio ndk undefined reference to '
- android ndk error :undefined reference to.
- Android NDK支持STL的正则表达式 undefined reference to 'std::regex_token_iterator
- NDK undefined reference to 问题解决
- NDK undefined reference to 错误
- Android studio中JNI-NDK开发打印LOG出现 undefined reference to `__android_log_print' 解决
- Visual GDB进行Android NDK开发,报错:error : undefined reference to '__android_log_print' 解决办法
- 64位Win7中使用64位库开发程序遇到的Undefined Reference问题
- android NDK libpcap undefined reference to `pcap_parse 等错误解决
- [ANDROID NDK ERROR]crtbegin_dynamic.o: undefined reference to 'main'
- Android NDK编译之undefined reference to 'JNI_CreateJavaVM'
- android ndk添加打印 解决undefined reference to __android_log_print'问题
- Android NDK编译错误处理-- error: undefined reference to '__dso_handle'
- android ndk编译报错undefined reference to __gxx_personality_v0
- 智能手部识别与饰品推荐系统 - 珠宝店售前推荐设备 为珠宝店解决售前客流量大的接待问题
- iOS中,访问系统隐私权限时修改alert文案的方法
- Java常见异常的总结
- java数据结构详解
- js日期转换函数
- android ndk开发支持64位时遇到undefined reference to `__system_property_get'
- JAVA利用HttpClient进行POST请求(HTTPS)
- JAVA入门基础知识小结
- 行业研究:服务机器人将成为新一代智能终端
- 异步任务AsyncTask
- /WEB-INF/views/login.jsp(2,61) Unable to read TLD "META-INF/c.tld" from JAR file "file:/D:/Program%
- 线程池剖析
- 判定200以内的数字的平方是否为回文数
- 手机号码段及归属地查询规则