记录一下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安装成功!

最终效果如下:

编译结束效果

 安装结束效果:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
源码编译安装GCC可以通过以下步骤进行: 1. 安装依赖库: - 执行命令:`yum install -y epel-release` 安装EPEL源; - 执行命令:`yum install -y vim wget gcc gcc-c make autoconf automake zip bzip2` 安装基础编译软件; - 执行命令:`yum install -y gcc-gnat libgcc libgcc.i686 glibc-devel bison flex m4 texinfo build-essential` 安装其他依赖软件。 2. 下载并解压GCC源码: - 执行命令:`wget -P '/usr/local/src' https://ftp.gnu.org/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz` 下载GCC源码; - 执行命令:`cd /usr/local/src` 进入下载目录; - 执行命令:`tar -zxvf gcc-10.3.0.tar.gz -C '/usr/local/src'` 解压GCC源码; - 执行命令:`cd gcc-10.3.0` 进入解压后的源码目录。 3. 设置环境变量: - 执行命令:`echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64' >> /etc/profile` 将依赖库路径添加到环境变量中; - 执行命令:`source /etc/profile` 使环境变量立即生效; - 执行命令:`vim /etc/ld.so.conf` 编辑ld.so.conf文件,将GCC依赖的动态链接库路径添加到文件中。 4. 编译和安装GCC: - 执行命令:`./configure --prefix=/usr/local/gcc-10.3.0` 配置GCC的安装路径; - 执行命令:`make -j$(nproc)` 编译GCC,耗时较长,请保证有足够的时间; - 执行命令:`make install` 安装GCC。 5. 配置GCC的默认版本(可选): - 执行命令:`ln -s /usr/local/gcc-10.3.0/bin/gcc /usr/local/bin/gcc` 创建软链接,将GCC的可执行文件路径添加到系统的PATH环境变量中。 请注意,源码编译安装GCC是一个耗时的过程,根据您的机器性能和网络状况,可能需要几个小时甚至更长时间才能完成编译。确保您有足够的时间和资源来完成这个过程

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值