【转发】解决"libc.so.6: version `GLIBC_2.14' not found"问题

编译了一个Linux程序,在RedHat上运行时提示"libc.so.6: version `GLIBC_2.14' not found",网上搜到这个问题的解决办法,原文http://www.myexception.cn/linux-unix/1622052.html:


【linux】提示"libc.so.6: version `GLIBC_2.14' not found",系统的glibc版本太低

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

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

1
2
3
4
5
6
7
8
9
[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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[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/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[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
2
[ghui@StuOS glibc-2.14]$ mkdir build 
[ghui@StuOS glibc-2.14]$ cd build

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

1
2
3
4
[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
2
3
4
5
6
7
8
9
10
11
[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 
...

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

posted @ 2015-03-19 12:32  流星无语  阅读(356)  评论(0编辑  收藏  举报