SUSE Linux 11下glibc依赖问题

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

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

[cpp]?view plain?copy

[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.dllQtSvg4.dll?rcc?

phonon4.dll?QtGui4.dll?QtScript4.dllQtTest4.dlluic?

qmakeQtMultimedia4.dllQtScriptTools4.dll?QtWebKit4.dll?

[ghui@StuOS?bin]$?./qmake

./qmake:?/lib64/libc.so.6:?version?`GLIBC_2.14'?not?found?(required?by?./qmake)?

2.查看系统glibc支持的版本:

[cpp]?view plain?copy

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

[cpp]?view plain?copy

[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. 到下载最新版本,我这里下载了glibc-2.14.tar.xz?这个版本,解压到任意目录准备编译

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

[cpp]?view plain?copy

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

abilistconfig.h.inintlREADME.libm?

abi-tagsconfig.logio?resolv?

aclocal.m4?config.make.inlibc-abis?resource?

aoutconfigure?libidn?rt?

argpconfigure.in?libio?Rules?

assert?conformLICENSESscripts?

autom4te.cache?CONFORMANCElocale?setjmp?

bitsCOPYINGlocaledata?shadow?

BUGSCOPYING.LIBlogin?shlib-versions?

build?cppflags-iterator.mk?machsignal?

CANCEL-FCT-WAIVEcrypt?Makeconfig?socket?

CANCEL-FILE-WAIVE?csuMakefilesoft-fp?

catgetsctype?Makefile.instdio-common?

ChangeLog?debug?Makerules?stdlib?

ChangeLog.1direntmalloc?streams?

ChangeLog.10dlfcn?manual?string?

ChangeLog.11elfmathsunrpc?

ChangeLog.12extra-lib.mk?miscsysdeps?

ChangeLog.13extra-modules.mk?NAMESPACE?sysvipc?

ChangeLog.14FAQNEWStermios?

ChangeLog.15FAQ.innistest-skeleton.c?

ChangeLog.16gmon?NOTES?time?

ChangeLog.17gnulibnptltimezone?

ChangeLog.2grpnptl_dbtls.make.c?

ChangeLog.3gshadownscdversion.h?

ChangeLog.4hesiodnssVersions.def?

ChangeLog.5hurd?o-iterator.mk?wcsmbs?

ChangeLog.6iconv?po?wctype?

ChangeLog.7iconvdata?posix?WUR-REPORT?

ChangeLog.8includePROJECTS?

ChangeLog.9inet?pwd?

confINSTALLREADME?

c.在glibc源码目录建立构建目录,并cd进入构建目录

[cpp]?view plain?copy

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

[cpp]?view plain?copy

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

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

[cpp]?view plain?copy

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

[cpp]?view plain?copy

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

[cpp]?view plain?copy

[ghui@StuOS?glibc-2.14]$?cd?/var/VMdisks/cross/mingw32/bin/?

[cpp]?view plain?copy

[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