系统出现此错误主要是系统glibc版本低,而运行程序编译版本高导致的
#查看系统支持的glibc支持的版本strings /lib64/libc.so.6 |grep GLIBC_#-----------------------------------start-----------------------------------GLIBC_2.2.5GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_2.10GLIBC_2.11GLIBC_2.12GLIBC_PRIVATE#------------------------------------end------------------------------------#strings命令在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。#参考:http://man.linuxde.net/strings
注:Linux里标准的libc是GNU libc,简称为glibc;glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。在 GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的几个重要里程碑,用 glibc 作为系统的C函式库,是GNU/Linux演进的一个重要里程碑。(by百度百科)
#查看系统安装的glibc包rpm -qa |grep glibc#-----------------------------------start-----------------------------------glibc-devel-2.12-1.166.el6_7.7.x86_64glibc-2.12-1.166.el6_7.7.x86_64glibc-headers-2.12-1.166.el6_7.7.x86_64glibc-common-2.12-1.166.el6_7.7.x86_64#------------------------------------end------------------------------------
解决方案:找到运行程序依赖的glibc包下载安装,修改环境变量即可
#下载glibc包wget http://ftp.gnu.org/gnu/libc/glibc-2.14.tar.gz#解压压缩包tar -zxvf glibc-2.14.tar.gz#进入glibc源码目录,建立build目录,进入build目录,配置glibc../configure --prefix=/opt/glibc-2.14#安装make -j4make install#用make -j带一个参数,可以把项目在进行并行编译,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源#参考:https://www.freemindworld.com/blog/2010/100105_make_complie_process_faster.shtml#修改临时环境变量export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH #现在可以执行你需要执行的程序了
注:
glibc包下载列表地址:http://ftp.gnu.org/gnu/libc/
http://www.gnu.org/software/libc/