/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found 解决办法

来源:互联网 发布:万国证券交易软件 编辑:程序博客网 时间:2024/06/15 22:12

今天在自己的Ubuntu 12.04(64位)系统上安装了一个QT_Creator 4.3.1,安装完毕之后选择立即运行,点击下去没有任何反应,我以为没点到,于是再点一次,还是没有任何反应。于是我估计应该是缺少什么库导致QT运行不起来,于是切换到命令行再次运行,这下看到了,系统给出的提示是:

leon@Ubuntu:~/qtcreator-4.3.1/bin$ ./qtcreator./qtcreator: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by /home/leon/qtcreator-4.3.1/bin/../lib/Qt/lib/libQt5Core.so.5)

原来是glibc这个家伙在搞鬼。看这个提示其实很简单,就是说我的系统中缺少glibc_2.17这个工具。好吧,为了保险,确认一下我的系统中是否真的缺少这个工具:

leon@Ubuntu:~$ strings  /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_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_2.13GLIBC_2.14GLIBC_2.15GLIBC_PRIVATE

看来还真是,我最新的版本也才2.15,而QT需要的是2.17。那么, 乖乖的去安装吧。

从百度上找到gnu下的glibc的官网地址(http://ftp.gnu.org/gnu/libc/)。打开网页可以看到如下队列:

这里写图片描述

找到2.17的版本。下载完后,解压,进入目录,编译,安装:

leon@Ubuntu:~$ tar xzvf glibc-2.17.tar.gzleon@Ubuntu:~$ cd glibc-2.17/leon@Ubuntu:~/glibc-2.17$ ./configurechecking build system type... x86_64-unknown-linux-gnuchecking host system type... x86_64-unknown-linux-gnuchecking for gcc... gccchecking for suffix of object files... ochecking whether we are using the GNU C compiler... yeschecking whether gcc accepts -g... yeschecking for g++... g++checking whether we are using the GNU C++ compiler... yeschecking whether g++ accepts -g... yeschecking for readelf... readelfconfigure: error: you must configure in a separate build directory

可以看到,系统给出了一个错误提示,说必须在另外一个独立的目录下执行configure命令。于是:

leon@Ubuntu:~/glibc-2.17$ mkdir buildleon@Ubuntu:~/glibc-2.17$ cd buildleon@Ubuntu:~/glibc-2.17/build$ ../configure --prefix=/opt/glibc-2.17

注意:这里的“–prefix=/opt/glibc-2.17”的作用是指定glibc的安装目录到opt目录下,目的是防止本次安装的glibc与系统中原来存在的其他版本冲突或者干扰。但是,这样安装之后,必须将该目录手动添加到系统的环境变量中去,否则其他程序将无法引用。

这下子可以走下去了。但是,好景不长,一会的工夫,又给出了一个错误提示:

......checking for gmsgfmt... nochecking for msgfmt... msgfmtchecking version of msgfmt... 0.18.1, okchecking for makeinfo... nochecking for sed... sedchecking version of sed... 4.2.1, okchecking for gawk... nochecking for nm... nmconfigure: error: *** These critical programs are missing or too old: gawk*** Check the INSTALL file for required versions.

原来是缺少gawk工具。百度一下,发现这也是一个很常用的工具,我系统中的版本太旧了,无法满足它的要求。于是,再次向度娘需求帮助。找到gawk的官网进行下载(http://ftp.gnu.org/gnu/gawk/)。打开网页可以看到如下队列:

这里写图片描述

找一个你认为合适的版本下载吧。我本人选的4.1.4的版本。

下载完后,解压,进入目录,编译,安装:

leon@Ubuntu:~$ cp /mnt/share/tmp/gawk-4.1.4.tar.gz gawk-4.1.4.tar.gzleon@Ubuntu:~$ tar xvzf gawk-4.1.4.tar.gzleon@Ubuntu:~$ cd gawk-4.1.4/leon@Ubuntu:~/gawk-4.1.4$ ./configureleon@Ubuntu:~/gawk-4.1.4$ makeleon@Ubuntu:~/gawk-4.1.4$ sudo make install

一路顺畅,等待安装完毕之后。再回到glibc的目录下,重新执行configure的命令。这下成功了。然后顺序执行make和make install,直到全部完成。


题后话:

上文中介绍的方法,其实只是完成了对新版本glibc工具的安装,但是,装完并不代表能用,系统中可用的glibc环境仍然没有发生变化(因为系统的glibc环境比较棘手,我不敢去私自修改)。所以,qt还是无法启动。因此,我自己倒腾的最后结果,还是没能把qt安装成功。不过,暂时的失败并不代表完全没有办法,我决定先将这个过程记录在此,日后若有机会,再过来慢慢研究。

当然,若是各位看官有兴趣,大可以去百度一下,如何去修改系统的glibc环境,因为,毕竟还是有不少高人动手修改成功了。当然,这是冒着系统崩溃的风险来操作的。所以,各位量力而行吧~~~

阅读全文
0 0