Linux/Centos下 /lib64/libc.so.6: version ‘GLIBC_2.14’ not found
问题背景:
在centos7上面编译的程序,在chenos6上运行报错 /lib64/libc.so.6: version ‘GLIBC_2.14’ not found
问题分析:
出现这种错误表明程序运行需要GLIBC_2.14,但是系统中却并不存在,因此可以先用strings命令查看下系统中的GLIBC版本
strings /lib64/libc.so.6 | grep GLIBC
发现系统中最高只支持GLIBC_2.12
[root@oraclelinux6 ~]# 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
[root@oraclelinux6 ~]#
glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现…
对于CentOS这样的系统,为了追求稳定性(这个值得商榷)往往各种库版本都很低,比如6.5甚至7.0自带的还是glibc2.12, 而ubuntu 14.04带glibc2.19。
如果升级基本C运行库到一个太新的版本,可能会影响CentOS的运行。
因此解决思路:
- 在低版本的系统编译自己的产品,如果自己的产品确实不需要新版才支持的新特性.
- 利用容器技术,如Docker,在低版本的操作系统内,轻量级的隔离出一个虚拟运行环境,适应你的程序。
8274

被折叠的 条评论
为什么被折叠?



