• 解决libc.so.6: version `GLIBC_2.14' not found问题, 升级glibc,glibc-2.15


     

    0.以下在系统CentOS 6.3 x86_64上操作

    1.试图运行程序,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:

    1. [ghui@StuOS bin]$ pwd  
    2. /var/VMdisks/cross/mingw32/bin  
    3. [ghui@StuOS bin]$ ls  
    4. lrelease     QtCore4.dll         QtNetwork4.dll      QtSql4.dll     QtXml4.dll  
    5. moc          QtDeclarative4.dll  QtOpenGL4.dll       QtSvg4.dll     rcc  
    6. phonon4.dll  QtGui4.dll          QtScript4.dll       QtTest4.dll    uic  
    7. qmake        QtMultimedia4.dll   QtScriptTools4.dll  QtWebKit4.dll  
    8. [ghui@StuOS bin]$ ./qmake   
    9. ./qmake: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./qmake)  
    [ghui@StuOS bin]$ pwd
    /var/VMdisks/cross/mingw32/bin
    [ghui@StuOS bin]$ ls
    lrelease     QtCore4.dll         QtNetwork4.dll      QtSql4.dll     QtXml4.dll
    moc          QtDeclarative4.dll  QtOpenGL4.dll       QtSvg4.dll     rcc
    phonon4.dll  QtGui4.dll          QtScript4.dll       QtTest4.dll    uic
    qmake        QtMultimedia4.dll   QtScriptTools4.dll  QtWebKit4.dll
    [ghui@StuOS bin]$ ./qmake 
    ./qmake: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./qmake)
    
    
    2.查看系统glibc支持的版本:
    1. [ghui@StuOS bin]$ strings /lib64/libc.so.6 |grep GLIBC_  
    2. GLIBC_2.2.5  
    3. GLIBC_2.2.6  
    4. GLIBC_2.3  
    5. GLIBC_2.3.2  
    6. GLIBC_2.3.3  
    7. GLIBC_2.3.4  
    8. GLIBC_2.4  
    9. GLIBC_2.5  
    10. GLIBC_2.6  
    11. GLIBC_2.7  
    12. GLIBC_2.8  
    13. GLIBC_2.9  
    14. GLIBC_2.10  
    15. GLIBC_2.11  
    16. GLIBC_2.12  
    17. GLIBC_PRIVATE  
    [ghui@StuOS bin]$ strings /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_PRIVATE
    1. [ghui@StuOS bin]$ rpm -qa |grep glibc  
    2. glibc-static-2.12-1.80.el6_3.6.x86_64  
    3. glibc-headers-2.12-1.80.el6_3.6.x86_64  
    4. glibc-common-2.12-1.80.el6_3.6.x86_64  
    5. glibc-devel-2.12-1.80.el6_3.6.x86_64  
    6. glibc-static-2.12-1.80.el6_3.6.i686  
    7. glibc-devel-2.12-1.80.el6_3.6.i686  
    8. glibc-2.12-1.80.el6_3.6.i686  
    9. glibc-2.12-1.80.el6_3.6.x86_64  
    [ghui@StuOS bin]$ rpm -qa |grep glibc
    glibc-static-2.12-1.80.el6_3.6.x86_64
    glibc-headers-2.12-1.80.el6_3.6.x86_64
    glibc-common-2.12-1.80.el6_3.6.x86_64
    glibc-devel-2.12-1.80.el6_3.6.x86_64
    glibc-static-2.12-1.80.el6_3.6.i686
    glibc-devel-2.12-1.80.el6_3.6.i686
    glibc-2.12-1.80.el6_3.6.i686
    glibc-2.12-1.80.el6_3.6.x86_64
    

    3.可以看到最高只支持2.12版本,所以考虑编译解决这个问题:

           a. 到http://www.gnu.org/software/libc/下载最新版本,我这里下载了glibc-2.14.tar.xz 这个版本,解压到任意目录准备编译

           b.这里解压到/var/VMdisks/glibc-2.14/

    1. [ghui@StuOS bin]$ cd /var/VMdisks/glibc-2.14/  
    2. [ghui@StuOS glibc-2.14]$ pwd  
    3. /var/VMdisks/glibc-2.14  
    4. [ghui@StuOS glibc-2.14]$ ls  
    5. abilist            config.h.in           intl           README.libm  
    6. abi-tags           config.log            io             resolv  
    7. aclocal.m4         config.make.in        libc-abis      resource  
    8. aout               configure             libidn         rt  
    9. argp               configure.in          libio          Rules  
    10. assert             conform               LICENSES       scripts  
    11. autom4te.cache     CONFORMANCE           locale         setjmp  
    12. bits               COPYING               localedata     shadow  
    13. BUGS               COPYING.LIB           login          shlib-versions  
    14. build              cppflags-iterator.mk  mach           signal  
    15. CANCEL-FCT-WAIVE   crypt                 Makeconfig     socket  
    16. CANCEL-FILE-WAIVE  csu                   Makefile       soft-fp  
    17. catgets            ctype                 Makefile.in    stdio-common  
    18. ChangeLog          debug                 Makerules      stdlib  
    19. ChangeLog.1        dirent                malloc         streams  
    20. ChangeLog.10       dlfcn                 manual         string  
    21. ChangeLog.11       elf                   math           sunrpc  
    22. ChangeLog.12       extra-lib.mk          misc           sysdeps  
    23. ChangeLog.13       extra-modules.mk      NAMESPACE      sysvipc  
    24. ChangeLog.14       FAQ                   NEWS           termios  
    25. ChangeLog.15       FAQ.in                nis            test-skeleton.c  
    26. ChangeLog.16       gmon                  NOTES          time  
    27. ChangeLog.17       gnulib                nptl           timezone  
    28. ChangeLog.2        grp                   nptl_db        tls.make.c  
    29. ChangeLog.3        gshadow               nscd           version.h  
    30. ChangeLog.4        hesiod                nss            Versions.def  
    31. ChangeLog.5        hurd                  o-iterator.mk  wcsmbs  
    32. ChangeLog.6        iconv                 po             wctype  
    33. ChangeLog.7        iconvdata             posix          WUR-REPORT  
    34. ChangeLog.8        include               PROJECTS  
    35. ChangeLog.9        inet                  pwd  
    36. conf               INSTALL               README  
    [ghui@StuOS bin]$ cd /var/VMdisks/glibc-2.14/
    [ghui@StuOS glibc-2.14]$ pwd
    /var/VMdisks/glibc-2.14
    [ghui@StuOS glibc-2.14]$ ls
    abilist            config.h.in           intl           README.libm
    abi-tags           config.log            io             resolv
    aclocal.m4         config.make.in        libc-abis      resource
    aout               configure             libidn         rt
    argp               configure.in          libio          Rules
    assert             conform               LICENSES       scripts
    autom4te.cache     CONFORMANCE           locale         setjmp
    bits               COPYING               localedata     shadow
    BUGS               COPYING.LIB           login          shlib-versions
    build              cppflags-iterator.mk  mach           signal
    CANCEL-FCT-WAIVE   crypt                 Makeconfig     socket
    CANCEL-FILE-WAIVE  csu                   Makefile       soft-fp
    catgets            ctype                 Makefile.in    stdio-common
    ChangeLog          debug                 Makerules      stdlib
    ChangeLog.1        dirent                malloc         streams
    ChangeLog.10       dlfcn                 manual         string
    ChangeLog.11       elf                   math           sunrpc
    ChangeLog.12       extra-lib.mk          misc           sysdeps
    ChangeLog.13       extra-modules.mk      NAMESPACE      sysvipc
    ChangeLog.14       FAQ                   NEWS           termios
    ChangeLog.15       FAQ.in                nis            test-skeleton.c
    ChangeLog.16       gmon                  NOTES          time
    ChangeLog.17       gnulib                nptl           timezone
    ChangeLog.2        grp                   nptl_db        tls.make.c
    ChangeLog.3        gshadow               nscd           version.h
    ChangeLog.4        hesiod                nss            Versions.def
    ChangeLog.5        hurd                  o-iterator.mk  wcsmbs
    ChangeLog.6        iconv                 po             wctype
    ChangeLog.7        iconvdata             posix          WUR-REPORT
    ChangeLog.8        include               PROJECTS
    ChangeLog.9        inet                  pwd
    conf               INSTALL               README
    
    

          c.在glibc源码目录建立构建目录,并cd进入构建目录
    1. [ghui@StuOS glibc-2.14]$ mkdir build  
    [ghui@StuOS glibc-2.14]$ mkdir build
    1. [ghui@StuOS glibc-2.14]$ cd build  
    [ghui@StuOS glibc-2.14]$ cd build
    

        d.运行configure配置,make && sudo  make install
    1. [ghui@StuOS build]$ ../configure --prefix=/opt/glibc-2.14  
    2. [ghui@StuOS build]$ make -j4   
    3. [ghui@StuOS build]$ sudo make install  
    4. [sudo] password for ghui:   
    [ghui@StuOS build]$ ../configure --prefix=/opt/glibc-2.14
    [ghui@StuOS build]$ make -j4 
    [ghui@StuOS build]$ sudo make install
    [sudo] password for ghui: 
    
    

    4.临时修改环境变量
    1. [ghui@StuOS bin]$ export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH  
    [ghui@StuOS bin]$ export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
    
    1. [ghui@StuOS glibc-2.14]$ cd /var/VMdisks/cross/mingw32/bin/  
    [ghui@StuOS glibc-2.14]$ cd /var/VMdisks/cross/mingw32/bin/
    
     
    5. 在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。我的习惯是加到 ~/.bashrc 中,在该文件的未尾,可采用如下语句来使设置生效:
     LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
     LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
     export LD_LIBRARY_PATH

    修改完后,记得关掉当前终端并重新打开一个新的终端,从而使上面的配置生效。


    1. [ghui@StuOS bin]$ ./qmake   
    2. Usage: ./qmake [mode] [options] [files]  
    3.   
    4. QMake has two modes, one mode for generating project files based on  
    5. some heuristics, and the other for generating makefiles. Normally you  
    6. shouldn't need to specify a mode, as makefile generation is the default  
    7. mode for qmake, but you may use this to test qmake on an existing project  

    From:

    http://blog.csdn.net/cpplang/article/details/8462768

    编译升级glibc, 易引起内核进不去,不能轻易升级:

    http://www.linuxidc.com/Linux/2015-04/116472.htm

    http://blog.csdn.net/officercat/article/details/39520227

    http://blog.sina.com.cn/s/blog_53aab5c10101dfpm.html

    http://zhaoyong.blog.51cto.com/61971/194327  几个相关库强制做软件链接

    另外,centos7.0支持到glibc-2.17.

    linux上装最新版本chrome, android studio都需要至少安装glibc-2.15

    编译安装glibc几个方案: 
    1.下载glibc

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

    2.下载glibc-linuxthreads

    wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.2.tar.gz

    3.解压

    tar -zxvf glibc-2.3.2.tar.gz
    cd glibc-2.3.2
    tar -zxvf ../glibc-linuxthreads-2.3.2.tar.gz
    cd ..
    ./glibc-2.3.2/configure --prefix=/usr --disable-profile --enable-add-ons --libexecdir=/usr/lib --with-headers=/usr/include
    make
    make install

    注意点:
    1、要将glibc-linuxthreads解压到glibc目录下。
    2、不能在glibc当前目录下运行configure

  • 相关阅读:
    POJ2115解题报告【拓展欧几里得模板题】
    Linux安装jdk快速流程
    SpringBoot+Vue项目多文件上传同时上传其他参数
    Maven
    浏览器常用快捷键
    IDEA从GitHub仓库拉取代码
    Address already in use: bind
    Vue集成echarts插件
    致自己
    Flask_FileUpload
  • 原文地址:https://www.cnblogs.com/timssd/p/5455916.html
Copyright © 2020-2023  润新知