linux 手动升级 g++-6

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/LaineGates/article/details/79002748

因工作需要,得升级下g++。
本机g++版本是4.8
想升级到g++6。由于网络问题,不能添加PPA,所以只能手动编译。

第一步,编译并安装g++-6

编译g++6的脚本如下:

# 下载源码到 "~/Downloads" 目录
wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.bz2
tar -jxvf gcc-6.1.0.tar.bz2
cd gcc-6.1.0
# 下载依赖库
./contrib/download_prerequisites
mkdir gcc-build-6.1.0
cd gcc-build-6.1.0 
#编译选项
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
# 启动8进程编译,如果cpu线程多,还可以再增加
make -j8
sudo make install

# <<<ubuntu 14.04>>> 切换到g++-6, !!!注意,此后旧版本g++就不能直接输入g++命令调用了!!!
cd /usr/local/bin
sudo ln -s g++-6 g++
cd /usr/bin
sudo ln -s g++-6 g++
# <<<ubuntu16.04>>> 切换到g++-6, !!!注意,此后旧版本g++就不能直接输入g++命令调用了!!!
cd /usr/local/bin
sudo ln -s x86_64-pc-linux-gnu-g++ g++
cd /usr/bin
sudo ln -s ../local/bin/x86_64-pc-linux-gnu-g++ g++

至此,g++编译安装完成
但使用g++时,会报类似于/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found的错误。这是因为lib库还没有切换到新版本。

第二步,切换lib库到g++-6

脚本如下:

cd /usr/lib64  # ubuntu 14.04
cd /usr/lib/usr/lib/x86_64-linux-gnu  # ubuntu 16.04
#拷贝新编译的lib库
cp ~/Downloads/gcc-6.1.0/gcc-build-6.1.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 ./
#删除旧库链接
rm -rf libstdc++.so.6
#使用新的链接
ln -s libstdc++.so.6.0.22 libstdc++.so.6

至此,升级g++-6完成。

参考链接

猜你喜欢

转载自blog.csdn.net/LaineGates/article/details/79002748