凉城旧巷
Python从入门到自闭,Java从自闭到放弃,数据库从删库到跑路,Linux从rm -rf到完犊子!!!

Centos7源码安装两个版本gcc

gcc编译安装前提是已安装其它版本的gccyum 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倍
../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
posted on 2021-12-16 16:00  凉城旧巷  阅读(1311)  评论(0编辑  收藏  举报