Centos安装高版本GCC

时间:2022-07-22
本文章向大家介绍Centos安装高版本GCC,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

CentOS7.2安装高版本gcc

其他centos系列可参考,未经测试,如有问题,可留言商讨

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

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

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

01

安装基础依赖环境

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

02

下载

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

03

下载依赖包:

./contrib/download_prerequisites

04

配置

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:不生成编译为其他平台可执行代码的交叉编译器。

05

编译

make

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

06

安装

make install

07

善后

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

01

删除yum下载的旧版本gcc

yum remove gcc

02

将新版本的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++

03

添加LD_LIBRARY_PATH环境变量

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

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

更改完后执行

source /etc/profile

04

最后更换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有什么区别

如有问题请留言,我们一起折腾