libstdc++.so.6: version `GLIBCXX_3.4.21' not found

1 篇文章 0 订阅

0.现象

在这里插入图片描述

1.原因

gcc版本过低
已安装gcc高版本但未进行软连接

2.查看gcc版本

使用 gcc -v 命令
在这里插入图片描述
我的由于刚更新过,为6.1.0版本。若版本较低,先更新gcc版本。请自行搜索更新…

2 .查看gcc版本包含的库

使用 strings /usr/lib/libstdc++.so.6 | grep GLIBC 命令 由于我的是x86所以目录为 /usr/lib,64位系统可能为 /usr/lib64,请自行确认。
我的系统中显示查询结果如下:
在这里插入图片描述
可以看到确实缺少我需要的GLIB_3.4.21.

3.更新软连接

首先进入gcc安装目录 cd /usr/local/lib(目录可能会有出入,如第二步所述,不在重复)
在这里插入图片描述
红色框中即为我们需要的文件,复制其到 /usr/lib/ 目录下。
命令为:cp libstdc++.so.6.0.22 /usr/lib 进入 /usr/lib/ 并查询,结果如下:
在这里插入图片描述
首先需要删除已存在的软连接,命令为rm -f libstdc++.so.6
重新建立软连接,命令为:ln -s libstdc++.so.6.0.22 libstdc++.so.6
查询是否执行成功,命令为:ll libstdc++.*
具体操作及查询结果如下图所示:
在这里插入图片描述
可以看到此时已经版本已经为 6.0.22。
到此已经可以正确编译c++项目。

4.补充

软连接的功能是为某一个文件在另一个位置建立一个不同的连接,这样当我们在不同的目录下使用该文件时只需要一份源文件即可,节约了磁盘空间。
命令为:

ln -s [源文件] [目标文件]

所以第三步中复制文件为不必要步骤,可以直接在 /usr/lib 中使用 ln 命令libstdc++.so.6 连接到 /usr/local/lib 目录中的该文件即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qingchuu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值