湖南kylin编译遇到`std :: __ throw_out_of_range_fmt(char libstdc++.so.6: version `GLIBCXX_3.4.20‘ not found

首先吐槽一下操作系统,我问一个用了几年的小兄弟,湖南kylin有啥优点,直接回我没啥优点,抄不说,抄的很懒,你看cat /etc/redhat-release,把这里面改成kylin,那就是说还是一个rehat了。

没办法,国家强制用,只能设法适应。首先用不了CentOS的源,小弟建议不要用,通过一系统骚操作可以用上,但得不偿失,还不如自己安装rpm,处理依赖,或者源码。

先是从自带的光盘里装上了gcc, g++,版本4.8.5(看答案这个版本与上面的错误直接相关),然后编译,缺啥补啥。后来碰到要装很多pkgconfig(XXX)的东西,一个一个包是解决不了,因为找不到那些包,不过后来装上libGL的头文件,发现不需要装这些也行。

言归正传,编译过程中,需要指定下头文件的包含路径,库文件没有指定,而是直接把相关库复制到/usr/lib和/usr/lib64下。最后仅剩下一个问题,就是上面的

`std :: __ throw_out_of_range_fmt(char libstdc++.so.6: version `GLIBCXX_3.4.20' not found

搜了下,还是google给力,百度出来的垃圾太多,找到了老牌网站上的答案

ubuntu 16.04 - libstdc++.so.6: version `GLIBCXX_3.4.20' not found - Stack Overflow

结合着看了一下,kylin自带的libstdc++.so.6.0.19里没有GLIBCXX3.4.20,有回答说升级到4.9以后就能解决,后来下载了gcc5.1,看着跟qt5.1比较搭配,也超过4.9,也不至于太新跟操作系统不匹配。编译过后,把原版的gcc4.8.5卸载,把新版的 libstdc++.so.6.0.21复制过/usr/lib,然后创建一个符号链接 libstdc++.so.6,重新编译应用软件,通过。

此后执行就是遇到的动态库找不到的常见错误,使用ldconfig配合etc下的配置文件,逐步消除,实在找不到,就再装或者复制个库进来。最终运行成功。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值