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