Centos安装高版本GCC

CentOS7安装高版本gcc

由于某些比较新的软件需要最新版本的gcc,常用centos 7.2 使用yum install gcc安装的版本为4.8.5可能不满足软件的需求, 这里介绍下怎么折腾最新版本的GCC

GCC官网:https://gcc.gnu.org/


我这里当前版本最新为9.3,那么我们就安装最新版本:

安装环境配置

yum install glibc-headers gcc-c++  gcc gmp  gmp-devel  mpfr  mpfr-devel  libmpc  libmpc-devel

下载

GCC下载地址很多,我们从国内的hust镜像站下载gcc源码包。

http://mirror.hust.edu.cn/gnu/gcc/

我选择的是gcc-9.3.0.tar.gz。

cd 
mkdir software
cd software
wget http://mirror.hust.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
tar zxvf gcc-9.3.0.tar.gz
cd cc-9.3.0

下载依赖包:

./contrib/download_prerequisites

配置

mkdir build
cd build
../configure --prefix=/usr/local/gcc-9.3.0/ --enable-checking=release --enable-languages=c,c++ --disable-multilib

configure是一个可执行脚本,它有很多选项,在待安装的源码路径下使用命令./configure –help输出详细的选项列表。其中--prefix选项是配置安装的路径。

如果不配置 --prefix 选项,安装后:

可执行文件默认放在/usr /local/bin

库文件默认放在/usr/local/lib

配置文件默认放在/usr/local/etc

其它的资源文件放在/usr /local/share

configure各项参数详解:

--prefix=/usr/local/gcc-9.3.0/:把所有资源文件都放在该路径下。

--enable-checking=release:生成的编译器在编译过程中不做额外检查。

--enable-languages=c,c++:让gcc支持c,c++。

--disable-multilib:不生成编译为其他平台可执行代码的交叉编译器。

编译

make

这个过程需要很久。需要耐心等待

安装

make install

善后

如果上面这些步骤你都还没有出错,那么,你成功了90%,我们需要一下善后的工作

    1. 删除yum下载的旧版本gcc
yum remove gcc
  • 2.将新版本的gcc加入命令搜索路径中:
ln -s /usr/local/gcc-9.3.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-9.3.0/bin/g++ /usr/bin/g++
  • 3.添加LD_LIBRARY_PATH环境变量

在/etc/profile中添加如下代码:

# gcc
LD_LIBRARY_PATH=/usr/local/gcc-9.3.0/lib
#export LD_LIBRARY_PATH

更改完后执行

source /etc/profile
  • 4.最后更换libstdc++.so.6
cp /usr/local/gcc-9.3.0/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6.0.28
rm -f /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.28 /usr/lib64/libstdc++.so.6

对于第四步不明白的可以使用

strings /usr/local/gcc-9.3.0/lib64/libstdc++.so.6.0.28 | grep GLIBCXX

对比一下替换前和替换后的/libstdc++.so.6有什么区别
如有问题请留言,我们一起折腾

你可能感兴趣的:(Centos安装高版本GCC)