glibc 编译安装( version `GLIBC_2.14' not found")

本文介绍了解决Kali Linux中出现的GLIBC_2.14 not found错误的方法,包括下载glibc源码、配置安装过程及修改环境变量等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用了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  

[ghui@StuOS glibc-2.14]$ cd build  
 
配置:
运行configure :
 
[ghui@StuOS build]$ ../configure --prefix=/opt/glibc-2.14  

[ghui@StuOS build]$ make -j4   

[ghui@StuOS build]$ sudo make install  

 

临时修改环境变量:

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

 

最后如果执行程序最好是要执行以下 ldconfig 以便查找该共享库。


如果你没有安装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源码中的一些说明性文档。

参考地址:http://www.cnblogs.com/wainiwann/p/4206582.html

http://blog.chinaunix.net/uid-223060-id-2215317.html

转载于:https://www.cnblogs.com/skylumia/p/4607175.html

### 解决 Linux 系统中 GLIBC_2.14 未找到的错误 #### 查看当前系统的 glibc 版本和支持情况 为了确认现有系统中的 glibc 支持哪些版本,可以执行命令来获取信息: ```bash strings /lib64/libc.so.6 | grep GLIBC rpm -qa | grep glibc ``` 这些命令能够帮助识别已安装glibc 是否包含了所需的 GLIBC_2.14 或更高版本的支持[^1]。 如果上述操作显示缺乏对 GLIBC_2.14 的支持,则说明需要更新或重新配置环境以满足依赖需求。 #### 升级 glibc 到包含 GLIBC_2.14 的版本 对于某些应用程序而言,可能确实因为特定功能而要求较新的库版本。例如,在分析 ELF 文件时可以看到某个程序明确指定了它所依赖的具体 glibc 符号及其最低版本要求: ```bash readelf -a test | grep 2.14 ``` 此命令揭示了目标二进制文件 `test` 对于 memcpy 函数调用了来自 GLIBC_2.14 及以上版本定义的接口[^2]。 因此,当遇到 “version `GLIBC_2.14' not found”的提示时,意味着运行环境中缺失必要的共享对象链接。此时可以通过编译安装指定版本(如 glibc-2.14)的方式来解决问题。具体做法如下: 下载源码包后解压进入相应目录,并按照官方文档指导完成构建过程;一旦 make 成功结束,在 build 子目录内会生成最新的 libc.so.6 文件以及对应的符号链接关系。通过检查新创建出来的动态加载器是否含有预期标签可验证其有效性: ```bash [root@localhost build]# strings libc.so | grep GLIBC ... GLIBC_2.14 ... ``` 这表明已经成功获得了带有所需 API 定义的新版 GNU C Library 实现[^3]。 最后一步则是将自建的高版本 glibc 正确部署至适当位置以便被应用层访问到——通常建议采用独立路径而非覆盖原有系统组件以防破坏稳定性。同时调整 LD_LIBRARY_PATH 环境变量指向新增加的 lib 路径从而让受影响的应用能顺利定位到正确的共享库实例[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值