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支持的版本:

[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
[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/

[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进入构建目录

 

[ghui@StuOS glibc-2.14]$ mkdir build
[ghui@StuOS glibc-2.14]$ cd build


    d.运行configure配置,make && sudo  make install

 

[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.临时修改环境变量

 

[ghui@StuOS bin]$ export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH

 

[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