记录一下Centos7源码编译gcc的过程

起初打算在物理机Centos7上编译gcc源码。但是环境比较复杂,编译过程中遇到各种错误,于是索性就在docker容器下挂载gcc源码进行编译,采用的镜像是centos7.编译还算比较顺利。在此记录一下,写个流水账。

这里docker的安装就略过了,网上有很多教程。 xxx替换为自己的用户名

这里先把 gcc源码下载下来。

地址为:Index of /gnu/gccicon-default.png?t=M4ADhttps://ftp.gnu.org/gnu/gcc/

我这里用的是gcc 9.5的版本。这里我把源码放在$HOME/src 目录下了,编译安装后的代码准备放在$HOME/app目录下。

wget https://ftp.gnu.org/gnu/gcc/gcc-9.5.0/gcc-9.5.0.tar.gz

启动进入容器:

docker run -it -v /home/xxx:/home/xxx centos:7 /bin/bash 

以下操作均在容器内进行。

gcc源码编译:

先看看镜像里有没有gcc,我这里没有,需要通过软件源在容器里安装一个老版本的。

gcc --version

然后更新软件源,安装gcc和gcc-c++ 这两个。因为我们后面要安装c和cpp两种

yum makecache

yum install gcc

yum install gcc-c++

这个zlib-devel也是需要提前安装的,这个在后面编译gcc的时候会用到。这里提前先安装了。

yum install zlib-devel

安装完后,可以查看一下安装的gcc版本,我这里yum安装的是gcc-4.8.5b版本

rpm -qa | list gcc

rpm -ql gcc-4.8.5-44.el7.x86_64

接下来就是
依次安装依赖gmp,mpfr,mpc 

安装的版本号和地址在gcc源码 contrib/download_prerequisites下可以查看

 通过这个地址下载,这里只需要下载gmp,mpfr,mpc即可

这里统一将依赖以及gcc源码安装在 $HOME/app 目录下

源码统一放在 $HOME/src下


安装gmp前先安装m4

yum install -y m4

然后安装gmp

./configure --prefix=/home/wzy/app/gmp-6.1.0

make -j && make install

安装mpfr

./configure --prefix=/home/wzy/app/mpfr-3.1.4 --with-gmp=/home/wzy/app/gmp-6.1.0
make -j && make install

安装mpc

./configure --prefix=/home/wzy/app/mpc-1.0.3 --with-gmp=/home/wzy/app/gmp-6.1.0 --with-mpfr=/home/wzy/app/mpfr-3.1.4

make -j && make install

最后构建编译gcc, 进入gcc源码build目录(没有创建)

执行

../configure --with-gmp=/home/wzy/app/gmp-6.1.0 --with-mpc=/home/wzy/app/mpc-1.0.3 --with-mpfr=/home/wzy/app/mpfr-3.1.4 \
--disable-multilib \
--enable-bootstrap \
--enable-languages=c,c++ \
--enable-threads=posix \
--prefix=/home/wzy/app/gcc-9.5.0-build


make -j && make install

经过数小时后就可以看到gcc安装成功!

最终效果如下:

编译结束效果

 安装结束效果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值