升级libstdc++、libgcc_s.so、libc.so.6
参考资料:
https://blog.csdn.net/ltl451011/article/details/7763892/
https://blog.csdn.net/na_beginning/article/details/53413997
一、为什么要升级?
有时候在链接外部动态库的时候,会出以下类似的问题:
./bin/mysqld: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./bin/mysqld)
./bin/mysqld: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./bin/mysqld)
出现这种问题就是因为“编译库的编译器” 和 “编译当前程序的编译器” 版本是不一样的,在具体一点就是因为,当前程序的编译器的版本是比较低的,只要升级一下就可以了。
二、查询库的版本
1、
可通过strings /lib64/libc.so.6 | grep GLIBC_ 查看系统 GLIBC 支持的版本
可通过strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 查看系统 GLIBCXX 支持的版本
2、指令安装的,可以这种查询方式
rpm -qa | grep gdb
rpm -qa |grep glibc
3、指令安装的,可以这种卸载方式(以卸载gdb为例)
rpm -e --nodeps gdb-7.2-83.el6.x86_64
二、libgcc_s.so跟libstdc++.so的升级,通过升级GCC来实现
1、下载GCC5.4.0的源码进行编译
GCC完成升级之后,在系统库目录下,删除旧库的软链接,创建新的软链接,指向新版本的库。
2、检查系统库目录,配置新的libstdc++.so
根据编译gcc时的配置,在指向目录下,找到生成的库为libstdc++.so.6.0.21
在系统库目录下 /lib64/ 检查存不存在libstdc++.so.6.0.21
不存在 则复制libstdc++.so.6.0.21 到 /lib64/
检查存不存在libstdc++.so的软连接,将旧的软链接全部删除掉。
创建新的软链接,指向 /lib64/libstdc++.so.6.0.21
检查其他的系统库目录
3、检查系统库目录,配置新的libgcc_s.so
仿照上面libstdc++.so的操作
三、libc.so.6升级
参考
https://blog.51cto.com/12077732/2125618
https://blog.csdn.net/superyzh/article/details/79472190
https://www.cnblogs.com/Mrhuangrui/p/7766554.html
https://www.jianshu.com/p/513e01fbd3e0
glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。
glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。
很多linux的基本命令,比如cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败会导致系统命令不能使用,
严重的造成系统退出后无法重新进入,所以操作时候需要慎重。
1、下载glibc的源码进行编译
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
使用下面的镜像应该会快点
wget http://mirrors.ustc.edu.cn/gnu/libc/
2、检查系统库目录,配置新的libc.so
根据编译时的配置,在指向目录下,找到生成的库
检查系统库目录,删除旧库的软链接,创建新库的软链接。
问题:
1、https://blog.csdn.net/zhenyuhe/article/details/86737328
这种方式,相当于从网上下载了一个较新版本的libstdc++.so库,
替换了系统的旧库,这种方式没有进行验证。
升级libstdc++、libgcc_s.so、libc.so.6的更多相关文章
- libstdc++适配Xcode10与iOS12
编译报错 当你开心得升级完新 macOS,以及新 XCode,准备体验了一把 Dark Mode 编程模式,开心的打开自己的老项目的时候,发现编译不通过了╮(╯_╰)╭ 如果你的工程中如果依赖 lib ...
- centos6.x升级glibc-2.17
glibc glibc是GNU发布的libc库,即c运行库.glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc:它本身也提供了许多其它一些必要功能服务的实现: libc ...
- /lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found(转载)
原文地址:https://blog.csdn.net/EI__Nino/article/details/100086157 终极一战 绝命一击 ImportError: /lib64/libstdc+ ...
- centos6.7下安装mysql5.6.22同时解决中文乱码问题
1.下载 http://dev.mysql.com/downloads/mysql/ 或者使用wget下载: wget http://dev.mysql.com/get/Downloads/MySQL ...
- ubuntu下ldd,查看程序动态库信息
ldd list, dynamic, dependencies linux-vdso.so. => (0x00007ffe9d9b6000) libstdc++.so. => /usr/ ...
- undefined symbol: ap_log_rerror;apache2.4与weblogic点so文件
没法子啊:只能用 httpd-2.2.26 ============================== https://www.google.com.hk/#newwindow=1&q=un ...
- Linux下C++开发常用命令
本页面记录本人在Linux下进行C++开发时使用的常用命令,注意这里不包括比如ls,mv等linux命令,这里会持续更新.首先假设你只有一个源程序文件,叫vec.cpp,编译后的可执行程序叫vec(本 ...
- Linux安装mysql以及安装时踩下的坑
安装: 检测是否已经安装了mysql rpm -qa | grep mysql 如果已经安装了,将其卸载,如: rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86 ...
- MySQL安装在Linux
利用Alt+p工具将下载好的Linux版本的mysql软件加载到根目录. 1. 将下载好的MySQL文件MySQL-5.6.41-1.el6.i686.rpm-bundle.tar放到 根目录下的mk ...
随机推荐
- 最长公共上升子序列 O(n^2)
#include <bits/stdc++.h> using namespace std; const int MAXN = 5005; int A[MAXN], B[MAXN], N, ...
- 传统ELK分布式日志收集的缺点?
传统ELK图示: 单纯使用ElK实现分布式日志收集缺点? 1.logstash太多了,扩展不好. 如上图这种形式就是一个 tomcat 对应一个 logstash,新增一个节点就得同样的拥有 logs ...
- DiaryDayBayDayDiary
Every day, an email reminder will be sent to you, along with a random copy of your previous diary. Y ...
- MongoDB Index
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要 ...
- React 引入import React 原理
本质上来说JSX是React.createElement(component, props, ...children)方法的语法糖. 所以我们如果使用了JSX,我们其实就是在使用React,所以我们就 ...
- RookeyFrame 一些心得 或者 调试技巧等
因为没有依赖具体的实现层,类库的输出路径又没有设置在web层的bin目录,所以每次都要拷贝实现层的DLL过去,有时候拷贝过去了还是没有反应,估计是缓存什么的吧, 解决:先那几个web层bin目录的 D ...
- A_G_C_007
AGC007 A Shik and Stone 我是沙比这都能蛙一发 https://agc007.contest.atcoder.jp/submissions/7946110 B Construct ...
- 【CSP-S膜你考】即时战略(模拟)
Problem B. 即时战略 (rts.c/cpp/pas) 注意 Input file: rts.in Output file: rts.out Time Limit : 2 seconds Me ...
- 第02组 Alpha冲刺(4/4)
队名:十一个憨批 组长博客 作业博客 组长黄智 过去两天完成的任务:了解整个游戏的流程 GitHub签入记录 接下来的计划:继续完成游戏 还剩下哪些任务:完成游戏 燃尽图 遇到的困难:没有美术比较好的 ...
- 洛谷P4735题解
若想要深入学习可持久化0-1Trie树,传送门. Description: 给定数列 \(\{a_n\}\) ,支持两种操作: 在数列尾添加一个数 \(x\) ,数列长度变成 \(n+1\) ; 给定 ...