android ndk守护进程,android ndk开发支持64位时遇到undefined reference to `__system_property_get'...

原文:https://blog.csdn.net/luoyong123456/article/details/50587417html

====================================================================android

android 作守护进程时用ndk实现,可是打包执行文件时要支持android5.1以上的64位手机时遇到undefined reference to `__system_property_get',打包不成功,最后百度谷歌找到http://www.bubuko.com/infodetail-1014879.html这篇文章看到问题缘由和解决方案,原文缘由:windows

下面这一系列的函数在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

.net

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值