参考资料:
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的更多相关文章

  1. libstdc++适配Xcode10与iOS12

    编译报错 当你开心得升级完新 macOS,以及新 XCode,准备体验了一把 Dark Mode 编程模式,开心的打开自己的老项目的时候,发现编译不通过了╮(╯_╰)╭ 如果你的工程中如果依赖 lib ...

  2. centos6.x升级glibc-2.17

    glibc glibc是GNU发布的libc库,即c运行库.glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc:它本身也提供了许多其它一些必要功能服务的实现: libc ...

  3. /lib64/libstdc++.so.6: version `CXXABI_1.3.8’ not found(转载)

    原文地址:https://blog.csdn.net/EI__Nino/article/details/100086157 终极一战 绝命一击 ImportError: /lib64/libstdc+ ...

  4. centos6.7下安装mysql5.6.22同时解决中文乱码问题

    1.下载 http://dev.mysql.com/downloads/mysql/ 或者使用wget下载: wget http://dev.mysql.com/get/Downloads/MySQL ...

  5. ubuntu下ldd,查看程序动态库信息

    ldd  list, dynamic, dependencies linux-vdso.so. => (0x00007ffe9d9b6000) libstdc++.so. => /usr/ ...

  6. undefined symbol: ap_log_rerror;apache2.4与weblogic点so文件

    没法子啊:只能用 httpd-2.2.26 ============================== https://www.google.com.hk/#newwindow=1&q=un ...

  7. Linux下C++开发常用命令

    本页面记录本人在Linux下进行C++开发时使用的常用命令,注意这里不包括比如ls,mv等linux命令,这里会持续更新.首先假设你只有一个源程序文件,叫vec.cpp,编译后的可执行程序叫vec(本 ...

  8. Linux安装mysql以及安装时踩下的坑

    安装: 检测是否已经安装了mysql rpm -qa | grep mysql 如果已经安装了,将其卸载,如: rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x86 ...

  9. MySQL安装在Linux

    利用Alt+p工具将下载好的Linux版本的mysql软件加载到根目录. 1. 将下载好的MySQL文件MySQL-5.6.41-1.el6.i686.rpm-bundle.tar放到 根目录下的mk ...

随机推荐

  1. GeoIP简介与资源,定位经纬度,获取用户IP

    所谓GeoIP,就是通过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息.这里面的技术不算难题,关键在于有个精准的数据库.有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡 ...

  2. 51nod1681 公共祖先

    [传送门] 很明显,可以转化成求每个点在两棵树中对应的子树中有多少个相同的节点,对答案的贡献就是$C(x, 2)$.关键就是怎么求这个东西.一是,对第一棵树求出dfs序,然后dfs第二棵树,用树状数组 ...

  3. 17-Flutter移动电商实战-首页_楼层区域的编写

    1.楼层标题组件 该组件非常简单,只接收一个图片地址,然后显示即可: class FloorTitle extends StatelessWidget {  final String picture_ ...

  4. sql中exists和notexists用法总结(并和in的比较)

    首先头脑中有三点概念: 1.EXISTS子查询找到的提交 NOT EXISTS 子查询中 找不到的提交 说明:不要去翻译为存在和不存在,把脑袋搞晕. 2.建立程序循环的概念,这是一个动态的查询过程.如 ...

  5. Codeforces 161.D. Distance in Tree-树分治(点分治,不容斥版)-树上距离为K的点对数量-蜜汁TLE (VK Cup 2012 Round 1)

    D. Distance in Tree time limit per test 3 seconds memory limit per test 512 megabytes input standard ...

  6. nginx.conf 配置解析之 http配置

    官方文档 http://nginx.org/en/docs/参考链接: https://segmentfault.com/a/1190000012672431参考链接: https://segment ...

  7. Centos7 守护进程supervisord 安装使用

    pervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它 ...

  8. 刷题记录:[De1CTF 2019]Giftbox && Comment

    目录 刷题记录:[De1CTF 2019]Giftbox && Comment 一.知识点 1.sql注入 && totp 2.RCE 3.源码泄露 4.敏感文件读取 ...

  9. git修改提交作者和邮箱

    作用一名程序员,我们会经常混迹与不同的代码仓库,时常不同仓库会有作者信息验证.比如公司内建的gitlab一般会要求统一使用公司内部的域账号签名:github要求使用github账号签名等.因此,很容易 ...

  10. Android相关视频

    Android架构师 层次分析 –从顶层到底层 洞察其原理https://www.bilibili.com/video/av59066641?t=132安卓/Android 逆向破解系统班 第2期 全 ...