version `GLIBC_2.29‘ not found 解决方法

起因:

      由于工作原因,需要离线部署软件到不同的系统下面,所以选择了市面上比较成熟的QT。

      在Win 7上面进行打包,在其余Win 7/10的电脑上运行正常。后续需求系统使用CentOS 8。在Linux下打包无问题,但是在其他Linux系统下运行结果不一。


问题描述:

      在银河麒麟V10下进行Qt工程的打包,打包正常。打包的程序在银河麒麟V10、Ubuntu 20.04、Debian11上也运行正常,但是在CentOS 8上面提示错误:version 'GLIBC_2.29' not found。如下图所示。

      通过ldd命令查看文件所依赖的共享库列表,发现上述错误。

      :当前的系统版本为CentOS Linux Release 8.5.2111。


分析:

      GLIBC的版本不兼容导致,CentOS由于稳定性的原因,GLIBC的版本过低。所以决定下载新版的GLIBC。

      附2.29版本的下载地址:http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz

      其余版本也可到上一层目录查找。

      其实最后发现仅仅与GCC版本有关。无需更新GLIBC。


解决方案:

      将下载的压缩包导入,解压。输入的命令如下:


tar -zxvf glibc-2.29.tar.gz
cd glibc-2.29
mkdir build
cd build/
../configure --prefix=/usr/local --disable-sanity-checks

      但是,运行到最后一步的时候,又出现了错误。

      通过gcc --version,发现GCC版本8.5。只能下载一个新版本导入。

      附GCC各版本的下载地址:Index of /pub/gcc/releases

      建议使用下面的语句安装各种依赖,会提示缺少信息。

sudo rpm -ivh *.rpm 

      后续其实会发现需要更多的依赖。此处不一一列举,我手动更新到GCC11.4.1。下面列出所下载的rpm。有需要可通过链接免费下载。

https://wwk.lanzoue.com/b05l3pf5a    密码:95q7

      可见当前版本的GCC产生冲突,最后显示的版本还是旧版。所以最后执行命令时,需要强制替换旧文件,添加--force即可解决。

​​​​​​​

sudo rpm -ivh *.rpm --force

      安装完成后,gcc也安装完成了,可查看当前GCC版本11.4.1.

注:   /sbin/ldconfig: /lib64/ld-linux-x86-64.so.2 is not a symbolic link暂未解决。   

      重新使用ldd观察依赖。发现正常,Qt打包的程序也能正常运行。

完结撒花!!!如有错误方便指出,谢谢。

参考链接,感谢作者:

Centos 8安装gcc的方法_centos8 gcc-CSDN博客

Ubuntu18.04升级GLIBC_2.29,解决ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29‘-CSDN博客

百度安全验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值