SUSE Linux 11의 glibc 종속성 문제
0. CentOS 6.3 x86_64 시스템에서 다음 작업이 수행됩니다.
1. 프로그램을 실행하려고 하면 "libc.so.6: version `GLIBC_2.14"라는 메시지가 나타납니다. ' 찾을 수 없음", 이유는 시스템의 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?(필수?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?
p>GLIBC_2.6? p>
GLIBC_2.7?
GLIBC_2.8?
GLIBC_2.9?
GLIBC_2 .10?
GLIBC_2 .11?
GLIBC_2.12?
GLIBC_PRIVATE?
[cpp]?일반 보기?복사
[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?
p>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?
빌드? 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. 구성, amp;amp; 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? p>
[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]?일반 보기?복사
[ ghui@ StuOS?glibc-2.14]$?cd?/var/VMdisks/cross/mingw32/bin/?
[cpp]?일반 보기?복사
[ghui@StuOS ?bin ]$?./qmake
사용법: ?./qmake?[모드]?[옵션]?[파일]?
QMake에는 두 가지 모드가 있습니다. 하나는?생성?프로젝트 파일?기반?
일부는 경험적 방법이고, 다른 하나는?생성?makefiles입니다. 일반적으로 당신은?
는?지정할 필요가 없습니까?모드를?makefile?세대로?기본값으로?
모드를?qmake에 대해?그러나?사용할 수 있습니까? ?this ?to?test?qmake?on?an?기존?프로젝트?
...?
이때 정상적으로 실행되며 문제가 해결되었습니다.
작성자: ghui
iomato.dev@Gmail.com
00:10 - 2013-01-04