/usr/lib64/libstdc++.so.6: version `GLIBCXX

编程入门 行业动态 更新时间:2024-10-19 02:15:03

/<a href=https://www.elefans.com/category/jswz/34/1757046.html style=usr/lib64/libstdc++.so.6: version `GLIBCXX"/>

/usr/lib64/libstdc++.so.6: version `GLIBCXX

起因是arm本地服务器下编译的程序放到远端服务器上执行,报错:

./Collect: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./Collect)
./Collect: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./Collect)

网上查资料找到命令 strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX  比对远端和本地差别

 

 本地比远端多了 GLIBCXX_3.4.20 ~ GLIBCXX_3.4.24 .

yum源中找到的rpm包 libstdc++-4.8.5-44.el7.aarch64.rpm 中,只有 libstdc++.so.6.0.19 。

删除 libstdc++.so.6 软链接,重新指向 libstdc++.so.6.0.19 ,然后 strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 结果不变,libstdc++.so.6 再次查看又链接到 libstdc++.so.6.0.24 .

观察到本地服务器gcc版本为 7.3.0,远端是 4.8.5 。给本地gcc降版本。

rpm -qa | grep gcc 显示已安装 4.8.5 ,说明 7.3.0 可能是源码安装。下载  gcc-4.8.5-44.el7.aarch64.rpm 和 gcc-c++-4.8.5-44.el7.aarch64.rpm 文件,解压后,降bin目录下的文件覆盖到本地服务器 /usr/bin/ 目录下,检查gcc -v 、g++ -v 显示结果均为 4.8.5

然后重新建软链接

[root@localhost ~]# cd /usr/lib64/
[root@localhost lib64]# rm -f /usr/lib64/libstdc++.so /usr/lib64/libstdc++.so.6
[root@localhost lib64]# ln -s libstdc++.so.6.0.19 libstdc++.so.6
[root@localhost lib64]# ln -s libstdc++.so.6.0.19 libstdc++.so

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 结果为 

重新编译程序拷贝到远端服务器上,启动成功。

更多推荐

/usr/lib64/libstdc++.so.6: version `GLIBCXX

本文发布于:2024-03-11 13:55:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1729125.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:usr   libstdc   GLIBCXX   version

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!