用了kali一段時間了,沒想到有一天使用vi命令時候突然就出現“GLIBC_2.14 not found"錯誤。沒法子,果斷查資料。
我是在kali-3.18.0中編譯的。
glibc的下載地址:http://ftp.gnu.org/gnu/glibc/
或者:http://www.gnu.org/software/libc/download.html
安裝:
下載的glibc的源碼解壓到某個目錄,並進入源碼目錄 建立構建目錄,並cd進入構建目錄:
[ghui@StuOS glibc-2.14]$ mkdir build
如果你沒有安裝gawk,你可能會看到以下的錯誤信息:
mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ]
mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, "", subd ...
make[1]: *** No rule to make target `/home/wstone/Build/glibc/glibc-build/Versions.all', needed by `/home/wstone/Build/glibc/glibc-build/abi-versions.h'. Stop.
make[1]: Leaving directory `/home/wstone/Build/glibc/glibc-2.9'
make: *** [all] Error 2
這是因為ubuntu使用的是mawk,安裝上glibc需要的gawk即可:
$ sudo apt-get install gawk ##kali上也是同理。
在ubuntu上編譯glibc可能還會看到以下錯誤:
../misc/syslog.c: In function ‘__vsyslog_chk’:
../misc/syslog.c:123: sorry, unimplemented: inlining failed in call to ‘syslog’: function body not available
../misc/syslog.c:155: sorry, unimplemented: called from here
make[2]: *** [/home/wstone/Build/glibc/glibc-build/misc/syslog.o] Error 1
make[2]: Leaving directory `/home/wstone/Build/glibc/glibc-2.9/misc'
make[1]: *** [misc/subdir_lib] Error 2
make[1]: Leaving directory `/home/wstone/Build/glibc/glibc-2.9'
make: *** [all] Error 2
網上討論這個是gcc的問題,使用以下的方式configure可以解決:
$ echo "CFLAGS +=-O2 -U_FORTIFY_SOURCE -march=i486 -mtune=native -fno-stack-protector" >configparm
$ ../glibc-2.9/configure --prefix=/usr --disable-profile --enable-kernel=2.6.15
關於這個問題的內容,可以參考:
1、http://swiss.ubuntuforums.org/showthread.php?p=7624127
2、https://wiki.ubuntu.com/CompilerFlags
另外glibc的編譯,可以參考lfs的內容:
1、http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html
如果想了解一些具體的編譯選項,那么應該仔細閱讀glibc源碼中的一些說明性文檔。