CentOS6.5 QT5.3 找不到GLIBCXX3.4.15解决方法


下载安装后 启动的时候提示 GLIBCXX_3.4.15,发现libstdc++.so.6的版本过,

在安装qt-creator的时候运行这个IDE就出现了这个问题,是由于libstdc++.so.6的版本过低,需要下载个新的重新建立软连接。

我这里是 更新里 gcc 版本到 4.8 解决的,更新之后做里链接

ln -s /usr/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6.18

下面是详细的解决过程

1.【分析过程】

linux 执行strings /usr/lib/libstdc++.so.6 | grep GLIBC
返回结果没有GLIBCXX_3.4.15

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBC_2.0
GLIBC_2.3
GLIBC_2.4
GLIBC_2.3.4
GLIBC_2.1
GLIBC_2.1.3
GLIBC_2.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

执行ls -l /usr/lib/libstdc++.so.6
发现/usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.12,其实这里需要使用libstdc++.so.6.0.12
从网上下载这个文件,然后rm -rf /usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.12软链接删除,重新做
关键是 网上下载的不对或者 没有找到,然后重新编译GCC 4.8的版本

2.【更新GCC】

1、下载gcc 4.8.1源码包:

http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.bz2

我是虚拟机里面装的Linux,我嫌wget太慢,所以自己在Windows上用迅雷下好,然后共享到Linux中。

2、解压:

tar -jxvf gcc-4.8.1.tar.bz2

3、下载编译所需的依赖包:

这个步骤有两种方式完成:

a) 如果Linux有网络连接,直接这样:

cd gcc-4.8.1

./contrib/download_prerequisites

cd ..

b) 如果Linux没有网络连接(我主机和虚拟机是Host-only,不能联网,所以另外想办法),则用Windows上网下载这几个包:

ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2

http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2

http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz

有人问,一定要下载几个版本吗?下载最新的版本行不行?我没试过,也不知道,我是按照gcc-4.8.1/contrib/download_prerequisites脚本里面的版本下载的。既然里面已经说了这几个版本,那我就严格按照它的要求来做。

然后解压并移动到gcc-4.8.1下面:

tar -xjf gmp-4.3.2.tar.bz2

tar -xjf mpfr-2.4.2.tar.bz2

tar -xzf mpc-0.8.1.tar.gz

mv gmp-4.3.2 gcc-4.8.1/gmp

mv mpfr-2.4.2 gcc-4.8.1/mpfr

mv mpc-0.8.1 gcc-4.8.1/mpc

这样的做法好处是,不用单独编译gmp、mpfr和mpc三个包,放在gcc源码下面一起编译(事实上这也是gcc-4.8.1/contrib/download_prerequisites脚本的做法,个人感觉更简洁些)。

4、新建目录用于存放编译结果:

mkdir gcc-build-4.8.1

5、进入新目录,并执行configure命令,产生makefile:

cd gcc-build-4.8.1

../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

具体选项不多解释,大家可以自己查看,我只用到c和c++,所以只编译这两种语言的编译器。

6、编译:

make -j4

编译一个小时左右....

7、安装:

sudo make install

8、大功告成,检查版本:

g++ --version

g++ (GCC) 4.8.1

3.【更新链接】

发现/usr/lib下的 libstdc++.so.6.0.12 没有被更新,查找 结果得知 g++ make install 在 /usr/local/bin 目录,

ln -s /usr/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6.18

ln -s /usr/lib64/libstdc++.so.6 /usr/local/lib64/libstdc++.so.6.0.20

---------------------------------------------------------------------------------------------
来源于:http://www.cnblogs.com/sitemaker/archive/2013/07/11/3185039.html

CentOS6.5 QT5.3 找不到GLIBCXX3.4.15解决方法,布布扣,bubuko.com

时间: 2024-10-24 21:57:03

CentOS6.5 QT5.3 找不到GLIBCXX3.4.15解决方法的相关文章

[[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"] 找不到对应的文件解决方法

最近在使用[[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"]时,找不到其对应的文件,文件当时是通过 右键->add files to 的方式添加到工程里面的,但是使用[[NSBundle mainBundle] pathForResource:@"name" ofType:@"type"]时,无论如何都找不到文件,经过了重启工程 .clear工程以

CentOS下找不到eth0设备的解决方法

问题描述: ifconfig命令无法找到eth0设备,且/etc/sysconfig/network-scripts/中只有ifcfg-lo文件,而没有ifcfg-eth0. 临时解决方法一: 使用命令ifconfig eth0 192.168.1.x可以正常设置eth0的IP,该方法仅为临时处理办法,系统重启后即失效了. 永久解决方法二: 1.在/etc/sysconfig/network-scripts/目录下新建ifcfg-eth0文件: 2.正确设置ifcfg-eth0的DEVICE.B

Nginx启动提示找不到libpcre.so.1解决方法

nginx启动报错:  error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory 我用的是64位系统 解决办法: [[email protected] ~]#  ln -s /usr/local/lib/libpcre.so.1 /lib64 启动nginx即可: /usr/local/webserver/nginx/sbin/ngin

Ubuntu中找不到pip3命令的解决方法

Ubuntu中找不到pip3命令的解决方法 Ubuntu 有 python2 和 python3. 今天使用 Ubuntu 中的 python3 时,想要安装第三方库却发现 pip 指向的是 python2 . 因为记得 Ubuntu 系统默认将 python3 的 pip 命令改成了 pip3 ,于是执行 pip3 -V ,报命令不存在. Round One 在网上搜原因,因为没有安装,遂安装: sudo apt-get install python3-pip 结果还是命令不存在. Round

QT项目升级(QT4.6.3到QT5.2)时,遇到的问题和解决方法

QT4升级到QT5修改: PC部分: [改QTDIR变量] 在project根文件夹下找到.user文件, 如InnoTabPlugin.vcxproj.user 改动指向你的QT5根文件夹: <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Template|Win32'"> <QTDIR>C:\qt\Qt5.2.1\5.2.1\msvc2010</QTDIR> </Prop

centos6.8下使用mysql的两个问题和解决方法

[问题1]在centos6.8上使用yum直接安装MySQL,一切正常安装.启动mysql时显示: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) (1).cp /usr/share/mysql/my-medium.cnf/ /etc/my.cnf(将默认的配置文件模板复制过去覆盖原有的配置文件): (2)./etc/init.d/mysq

找不到iconv.h文件 解决方法

现象: 编译php5.3.24,老是报找不到iconv.h文件,libiconv已经安装了.试了好多次,从一个论坛看到如下解决方案: "iconv是glibc的一部分 ,应该是没装装glibc-devel " 结果: yum install -y glibc-devel,再编译,成功了..

fileupload页面跳转找不到原页面的解决方法

做了个上传图片的功能,之前做的全都对,完全可以实现,但是后来再弄的时候,只要FileUpload控件里面有字(选择了图片),再按button.它尽然不执行button1_click事件,直接页面跳转,然后显示找不到页面.但是FileUpload如果是空的,就会执行.这事怎么回事啊??? 自己搞定啦.是上传默认大小1M的原因.在配置文件里改好就行了 修改方法如下: 你可以更改上传文件的大小的限制      在web.config中的 <system.web> </system.web>

转:Tomcat启动过程中找不到JAVA_HOME JRE_HOME的解决方法

转自:http://blog.sina.com.cn/s/blog_61c006ea0100l1u6.html 原文: 在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomcat在启动过程中找不到.    报错信息如下:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to r