下载安装后 启动的时候提示 GLIBCXX_3.4.15,发现libstdc++.so.6的版本过, linux
在安装qt-creator的时候运行这个IDE就出现了这个问题,是因为libstdc++.so.6的版本太低,须要下载个新的从新创建软链接。 c++
我这里是 更新里 gcc 版本到 4.8 解决的,更新以后作里连接 网络
ln -s /usr/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6.18 ide
下面是详细的解决过程 ui
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的版本 ip
2.【更新GCC】 ci
一、下载gcc 4.8.1源码包: get
http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.bz2 编译器
我是虚拟机里面装的Linux,我嫌wget太慢,因此本身在Windows上用迅雷下好,而后共享到Linux中。
二、解压:
tar -jxvf gcc-4.8.1.tar.bz2
三、下载编译所需的依赖包:
这个步骤有两种方式完成:
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脚本的作法,我的感受更简洁些)。
四、新建目录用于存放编译结果:
mkdir gcc-build-4.8.1
五、进入新目录,并执行configure命令,产生makefile:
cd gcc-build-4.8.1
../gcc-4.8.1/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
具体选项很少解释,你们能够本身查看,我只用到c和c++,因此只编译这两种语言的编译器。
六、编译:
make -j4
我是i5四核,因此开4个线程同时编译,要是有8核就更爽了~我在虚拟机里面花了30分钟不到的时间,不算太慢了。
七、安装:
sudo make install
八、大功告成,检查版本:
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