解决openwrt系统出现__gettimeofday_time64: symbol not found等问题

这个问题一般出现在比较老旧的openwrt系统安装新版软件包的时候,原因在于openwrt所用的musl C库在1.2.0版本之后加入了64位的时间函数,在此之后发布的软件包都采用了64位的时间函数。而如果你的openwrt系统比较老,其上的musl库版本可能在1.2.0之前,就无法为软件提供所需要的函数,这也是所有报错都是以time64为结尾的函数名的原因。

 

方案一是安装旧版本的软件,但这个方法无法一劳永逸解决问题,而且安装旧版本比较麻烦,也容易出问题,因此不过多讨论。

方案二就是更新系统中的C库了,但我们不能像更新软件包一样用opkg更新,需要手动替换掉musl的动态运行库。如果你的路由器是mips指令集(注意是大端序,和mipsel不一样),你可以直接下载我编译好的.so文件(链接放在最后),否则只能下载musl的源码自行编译,版本可任意选择,只要在1.2.0及之后即可。

编译之后我们只需要libc.so文件,将其复制到路由器的/lib目录下即可,记住一定是直接复制进行覆盖!切忌删除原来的/lib/libc.so后再复制!!否则系统会直接崩溃!

复制完成后,新装的软件应该就能正常运行了。

libc.so(mips指令集)下载地址:libc.so 提取码:nuna

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值