linux 更新libstdc++.so.6

执行程序时报错:

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

libstdc库版本过旧导致;

 

查看libstdc++.so.6信息

1.1 查看libstdc++.so.6位置

sudo find / -name libstdc++.so.6* #ls -l libstdc++.so*

/usr/lib/x86_64-linux-gnu/libstdc++.so.6

/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.24

现在动态库版本是libstdc++.so.6.0.19;还找到一个新版本的动态库

libstdc++.so.6.0.24;接下来我们可以使用新的动态库链接到libstdc++.so.6

1.2 查看libstdc++.so.6软链接

ls -l libstdc++.so*

lrwxrwxrwx 1 root root 19 Feb 14 2018 libstdc++.so.6 -> libstdc++.so.6.0.19

libstdc++.so.6现在版本是libstdc++.so.6.0.19

1.3 查看libstdc++.so.6链接包含的动态库,动态库中确实没有GLIBCXX_3.4.21

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6|grep GLIBC

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19

动态库中确实没有GLIBCXX_3.4.21


查看新版本libstdc

2.1 查看libstdc++.so.6.0.24 链接包含的动态库,有GLIBCXX_3.4.21

strings /home/labubuntu/miniconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24 | grep GLIBCXX

GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24


将libstdc++.so.6.0.24 链接到libstdc++.so.6

3.1 拷贝libstdc++.so.6.0.24

sudo cp /home/labubuntu/miniconda3/pkgs/libstdcxx-ng-7.2.0-hdf63c60_3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24 /usr/lib/x86_64-linux-gnu

3.2 删除软链接libstdc++.so.6

sudo rm libstdc++.so.6

3.3 建立新软链接libstdc++.so.6

sudo ln -s libstdc++.so.6.0.24 libstdc++.so.6

3.4 查看软链接libstdc++.so.6

ls -l libstdc++.so*

lrwxrwxrwx 1 root root 19 Nov 14 01:54 libstdc++.so.6 -> libstdc++.so.6.0.24
-rw-r--r-- 1 root root 979056 Nov 14 01:41 libstdc++.so.6.0.19



作者:_eason_
链接:https://www.jianshu.com/p/ef510e0def25
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

### 回答1: libstdc++.so.6.0.28是Linux系统中的一个库文件,它是C++标准库的一个组件。该库文件包含了许多预定义的C++函数,例如字符串处理和输入/输出操作等。这些函数可帮助开发人员简化C++编程中的许多常见任务。 在Linux系统中,程序需要访问libstdc++.so.6.0.28库文件才能运行,否则程序会出现运行错误。因此,该库文件是Linux系统中一项非常重要的组件。 如果您是Linux系统中的开发人员或管理员,那么您需要了解libstdc++.so.6.0.28的用途及其功能。同时,您还需要掌握如何正确地安装、更新和维护该库文件,以确保您的系统始终能够正常运行。除此之外,您还需要了解如何使用该库文件来编写高效的C++代码,以及如何利用其中的函数来完成各种常见的任务。 总之,libstdc++.so.6.0.28是Linux系统中不可或缺的一个组件,它为开发人员和管理员提供了许多重要的功能和工具,有助于简化C++编程过程并提高系统的稳定性和安全性。 ### 回答2: linux libstdc.so.6.0.28是一个库文件,是GNU C++ 标准库的一部分,是GCC(GNU C编译器)的运行时库之一。它包含了许多C++标准函数和类,可以用于编写C++程序。 libstdc++还提供了一些用于C++编程的工具,例如标准库容器类,算法和迭代器。这个库文件在很多Linux系统上默认安装,是许多Linux软件和应用程序成功运行的必要条件之一。 一旦安装了libstdc++,用户就可以在Linux系统上编写和运行C++程序,利用库文件中的函数和类。这使得开发C++应用程序变得更简单和方便。 总之,linux libstdc.so.6.0.28是一个十分重要的库文件,为C++开发者提供了许多工具和函数,是许多Linux系统的必备组件之一。 ### 回答3: libstdc++.so.6.0.28是GCC的标准C++库,运行时需要加载这个动态链接库。这个库提供了C++标准库的一些实现,包括容器、算法、字符串、流等。在Linux系统上,一般已经包含了这个库。 如果某个程序不能正常运行,提示缺少libstdc++.so.6.0.28,那么需要安装这个库。可以通过包管理器安装,或者手动下载并安装。安装后,可以使用ldd命令查看程序的依赖库是否满足。 linux libstdc++.so.6.0.28版本的更新,也会影响到程序的运行。如果程序在开发时使用了较新的C++标准库特性,而在执行时使用了过旧的libstdc++.so.6.0.28,就会出现兼容性问题。因此,在开发和部署时要考虑版本的兼容性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值