解决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引起的:

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

[ghui@StuOS bin]$ ./qmake 
Usage: ./qmake [mode] [options] [files]

QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn't need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project
...


此时运行正常,问题解决。


By ghui

iomato.dev@Gmail.com

00:10 - 2013-01-04






展开阅读全文

没有更多推荐了,返回首页