解决libc.so.6: version `GLIBC_2.14' not found问题

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/

 
  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

原文地址:https://www.cnblogs.com/emanlee/p/4311901.html