Centos7源码安装两个版本gcc
gcc编译安装前提是已安装其它版本的gcc:yum install -y gcc gcc-c++
0.下载源码包
官网下载或者国内镜像:http://mirrors.nju.edu.cn/gnu/gcc/gcc-5.5.0/
1.解压缩
tar -zxvf gcc-5.5.0.tar.gz
2.下载依赖包
cd gcc-5.5.0
./contrib/download_prerequisites
3.新建目录
mkdir build
cd build
4.编译+安装
- --prefix:指定gcc安装目录,可以使用任意目录,这里使用
/usr/local/gcc5
目录 - make -j:多核安装编译,
- 例如在一台2核的机器上,可以使用
make -j4
, 最多允许4个编译命令同时执行,可以更有效的利用CPU资源 - 并行的任务不宜太多,一般是CPU核心数的2倍
- 例如在一台2核的机器上,可以使用
../configure --prefix=/usr/local/gcc5 --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j
make install
5.之间已有低版本的gcc存在,先删除已建的软连接
rm -rf /usr/bin/gcc
rm -rf /usr/bin/g++
ln -s /usr/local/gcc5/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc5/bin/g++ /usr/bin/g++
6.查看新版本
gcc --version
7.替换老版本动态库
运行程序时可能会出现/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.20' not found
,是因为升级安装了gcc,生成的动态库没有替换老版本的gcc动态库导致的。
找到在/usr/local/gcc5/lib64/
文件夹下
cp /usr/local/gcc5/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6.0.21
rm -f /usr/lib64/libstdc++.so.6
ln /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6
博客内容仅供参考,部分参考他人优秀博文,仅供学习使用