嵌入式交叉编译后遇到“version `GLIBC_2.34‘ not found”的有效解决方法

问题:嵌入式开发,交叉编译后的程序放到开发板上发现,version `GLIBC_2.34‘ not found”。
原因分析:主要交叉编译是使用的glibc库和实际板子上使用的库不一致导致的。
版本检查:在编译环境和开发板上分别检查库的版本:命令如下:
strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_

解决办法:在交叉编译的Makefile中加入静态编译即可,也就是把库编译到程序中,Makefile中加入-static关键字,使用静态链接。因为默认的都是动态链接,所以会识别出版本不同的问题。
亲测有效。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用[1]、[2]、[3]中提到的错误提示"/lib/libc.so.6: version `GLIBC_2.34' not found"是由于缺少GLIBC库的版本2.34导致的。GLIBC是GNU C库,它是Linux系统中的一个重要组件,提供了许多标准的C库函数。不同的应用程序可能需要不同版本的GLIBC库来正常运行。 要解决这个问题,你可以尝试以下几种方法: 1. 更新GLIBC库:你可以尝试更新GLIBC库到最新版本,以满足应用程序对GLIBC_2.34版本的要求。你可以通过更新操作系统或手动安装GLIBC库的最新版本来实现。 2. 编译应用程序:如果你有应用程序的源代码,你可以尝试在目标系统上重新编译应用程序,以适应当前可用的GLIBC库版本。在编译过程中,确保使用目标系统上可用的GLIBC库版本。 3. 兼容性处理:如果你无法更新GLIBC库或重新编译应用程序,你可以尝试使用兼容性处理方法。这可能包括使用chroot环境、容器化技术或其他方法来创建一个与目标系统不同的环境,以满足应用程序对GLIBC库版本的要求。 需要注意的是,GLIBC库的版本问题可能涉及到系统的稳定性和兼容性。在进行任何更改之前,请确保你了解可能的风险,并备份重要的数据和配置文件。 总结起来,要解决"/lib/libc.so.6: version `GLIBC_2.34' not found"的问题,你可以尝试更新GLIBC库、重新编译应用程序或使用兼容性处理方法。具体的解决方法取决于你的系统和应用程序的具体情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值