非root用户通过源码安装gcc(不同的版本)

本文介绍了如何从清华大学开源镜像源下载GCC源码及依赖GMP, MPFR, MPC,并提供了详细的安装步骤。首先选择适合的版本,然后逐个下载并安装,最后配置环境变量并测试GCC版本。在64位系统上,若遇到32位库缺失的问题,可以修改配置选项或安装相应32位库。
摘要由CSDN通过智能技术生成

下载gcc源码,及其依赖项(GMP, MPFR, MPC)

选择国内镜像源下载,速度很快。例如清华大学开源镜像源 https://mirrors.tuna.tsinghua.edu.cn/

gcc源码下载:Index of /gnu/gcc/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

GMP源码下载:Index of /gnu/gmp/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

MPFR源码下载:Index of /gnu/mpfr/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

MPC源码下载:Index of /gnu/mpc/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

GMP, MPFR, MPC 具体下载哪个版本合适,可以根据自己下载的gcc源码目录,去执行configure 命令,在生成Makefile文件的过程中会报错,提示缺失GMP,MPFR,MPC,并且告诉至少需要什么版本号。在gcc源码文件目录gcc-12.2.0/contrib/download_prerequisites中也有具体的版本号要求。

下载完成之后,依次安装GMP,MPFR, MPC, gcc (每一项的安装都依赖前一项)

# create install path
mkdir -p application && cd application
mkdir gmp
mkdir mpfr
mkdir gcc

# install gmp 
tar -xjvf gmp-6.2.1.tar.bz2
cd gmp-6.2.1
./configure --prefix=/home/$yourUserName/application/gmp
make -j8
make install

# install mpfr
tar -xzvf mpfr-4.1.0.tar.gz
cd mpfr-4.1.0
./configure --prefix=/home/$yourUserName/application/mpfr --with-gmp=/home/$yourUserName/application/gmp
make -j8
make install

# install mpc
tar -xzvf  mpc-1.2.1.tar.gz 
./configure --prefix=/home/$yourUserName/application/mpc  --with-gmp=home/$yourUserName/application/gmp --with-mpfr=home/$yourUserName/application/mpfr 
make 
make install

# install gcc
tar -xzvf gcc-12.2.0.tar.gz
cd gcc-12.2.0
./configure --prefix=/home/$yourUserName/application/gcc --with-gmp=home/$yourUserName/application/gmp --with-mpfr=home/$yourUserName/application/mpfr --with-mpc=/home/$yourUserName/application/mpc --enable-multilib --enable-threads=posix --disable-checking --enable-long-long --enable-languages=c,c++
make -j8
make install

# after install, add the ENV PATH
export PATH=/home/$yourUserName/application/gcc/bin:$PATH
export LD_LIBRARY_PATH=/home/$yourUserName/application/gcc/lib:$LD_LIBRARY_PATH

# test
gcc --version 

补充:

  • 下载完成gcc源码之后,可以通过直接运行gcc-12.2.0/contrib/download_prerequisites脚本去下载依赖,并且不用指定--with-gmp, --with-mpfr, --with-mpc, 如果download_preprequisites中是ftp路径,可能下载非常慢,可以尝试修改成为http路径。
  • 如果在编译过程中出现了如下报错,是因为在64-bit系统上没有安装32-bit版本的libc,将configure时的--enable-multilib改成--disable-multilib即可。(或者也可以安装32-bit的glibc, glibc-devel.i686)
    Error "gnu/stubs-32.h: No such file or directory"

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值