zoukankan      html  css  js  c++  java
  • linux系统更新libc ,libstdc++标准库

    开发环境下正常运行的c++程序放到新的环境重新make后报:

    /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)

    /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libstdc++.so.6)

    查看新环境的GLIBC版本:

    srings /lib64/libc.so.6 | grep GLIBC

    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_2.13
    GLIBC_2.14
    GLIBC_2.15
    GLIBC_2.16
    GLIBC_2.17
    GLIBC_PRIVATE

    strings /lib64/libstdc++.so.6 | grep CXXABI

    [root@bigdata-server3 lib64]# strings libstdc++.so.6 | grep CXXABI
    CXXABI_1.3
    CXXABI_1.3.1
    CXXABI_1.3.2
    CXXABI_1.3.3
    CXXABI_1.3.4
    CXXABI_1.3.5
    CXXABI_1.3.6
    CXXABI_1.3.7

    发现确实版本不够

    需要分别升级c和c++库

    查看本地库的实际地址:

    ll /usr/lib64/libstdc++.so.6
    lrwxrwxrwx 1 root root 19 Nov 16 09:27 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19

    ll /usr/lib64/libc.so.6
    lrwxrwxrwx 1 root root 12 Nov 16 09:16 /usr/lib64/libc.so.6 -> libc-2.17.so

    ==========================================================

    升级libc

    # wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz

    (17版本以后不需要port依赖库)

    下载完成后,解压,并进入解压后的目录

    # tar -xvf glibc-2.18.tar.gz 

    # cd glibc-2.18

    # mkdir build

    # cd build/ 

    ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin(时间比较长)

    make

    make之后 得到新的库,以后指向新的库的软连接libc.so.6

    # strings libc.so.6 |grep GLIBC | head -30
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_2.13
    GLIBC_2.14
    GLIBC_2.15
    GLIBC_2.16
    GLIBC_2.17
    GLIBC_2.18
    GLIBC_PRIVATE

    ]# ll | grep libc
    -rw-r--r-- 1 root root 22246960 Nov 16 09:58 libc.a
    -rw-r--r-- 1 root root 192 Nov 16 09:52 libc-abis.h
    -rw-r--r-- 1 root root 0 Nov 16 09:52 libc-abis.stamp
    -rw-r--r-- 1 root root 93 Nov 16 09:52 libcidn.map
    -rw-r--r-- 1 root root 33865 Nov 16 09:52 libc.map
    -rw-r--r-- 1 root root 72910 Nov 16 09:58 libc_nonshared.a
    -rw-r--r-- 1 root root 25446348 Nov 16 09:58 libc_pic.a
    -rw-r--r-- 1 root root 21951016 Nov 16 09:58 libc_pic.os
    -rw-r--r-- 1 root root 109 Nov 16 09:52 libcrypt.map
    -rwxr-xr-x 1 root root 10230960 Nov 16 09:58 libc.so
    lrwxrwxrwx 1 root root 7 Nov 16 09:58 libc.so.6 -> libc.so

    此时切记不要直接复制此文件夹内的文件到系统/usr/lib64去替换原始库文件(如果已删除,删除系统libc.so.6,会导致系统命令不可用, 请使用LD_PRELOAD相关命令恢复)

    继续make install 

    正好完成后 ,新编译的库会生成到系统目录下

    /usr/lib64/ | grep libc
    -rwxr-xr-x. 1 root root 2173512 Apr 10 2018 libc-2.17.so
    -rwxr-xr-x 1 root root 10230960 Nov 16 10:08 libc-2.18.so

    lrwxrwxrwx 1 root root 12 Nov 16 10:08 libc.so.6 -> libc-2.18.so

    再次查看系统c库版本

    [root@bigdata-server3 lib64]# strings libc.so.6 | grep GLIBC
    GLIBC_2.2.5
    GLIBC_2.2.6
    GLIBC_2.3
    GLIBC_2.3.2
    GLIBC_2.3.3
    GLIBC_2.3.4
    GLIBC_2.4
    GLIBC_2.5
    GLIBC_2.6
    GLIBC_2.7
    GLIBC_2.8
    GLIBC_2.9
    GLIBC_2.10
    GLIBC_2.11
    GLIBC_2.12
    GLIBC_2.13
    GLIBC_2.14
    GLIBC_2.15
    GLIBC_2.16
    GLIBC_2.17
    GLIBC_2.18
    GLIBC_PRIVATE

    c库升级完成

    ====================================================

    升级c++库

    查看本地库的实际地址:

    #ll /usr/lib64/libstdc++.so.6
    lrwxrwxrwx 1 root root 19 Nov 16 09:27 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19

    拷贝高版本标准库libstdc++.so.6.0.21到该目录(可网上下载

    重新设置软连接

    #ln -snf   /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6

    查看新版本情况

  • 相关阅读:
    mysql router读写分离
    Hbase单节点Standalone & Pseudo Distribute
    WAS web.xml修改不生效
    Hadoop单节点集群
    网易云音乐 linux版
    OpenLDAP GUI管理工具
    Memcached源码安装配置
    CentOS7 /var/log/messages Starting Session x of user root
    linux下安装jdk(转载)
    ubuntu安装rpm格式文件方法(转载)
  • 原文地址:https://www.cnblogs.com/apache11/p/9967658.html
Copyright © 2011-2022 走看看