• 在Linux环境下从源码构建并安装GCC


    对于可以方便的访问公网的机器,安装GCC时可以直接通过yum或者apt-get命令完成。但对于无法访问外网,或者软件源更新不及时的环境,出于业务需要更新GCC时,则需要从源码发出来构建。
    本文记录从源码构建GCC的指令。

    安装指导

    检查环境

    通过源码形式安装GCC时,则本机需要安装有一个低版本的GCC。
    执行如下命令,检查本机是否已安装GCC。如下是在我本机,检查GCC软件时的情况。

    $ which gcc
    /usr/bin/gcc
    
    $ gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
    OFFLOAD_TARGET_NAMES=nvptx-none
    OFFLOAD_TARGET_DEFAULT=1
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
    Thread model: posix
    gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    下载软件

    链接见下。

    编译前准备

    • 将软件下载至$CODE_ROOT目录,并解压。
    cd $CODE_ROOT
    tar vxfz gcc-9.2.0.tar.gz
    tar vxfz mpc-1.0.3.tar.gz
    tar vxfj gmp-6.1.0.tar.bz2
    tar vxfj isl-0.18.tar.bz2
    tar vxfj mpfr-3.1.4.tar.bz2
    
    ln -s mpc-1.0.3 gcc-9.2.0/mpc
    ln -s gmp-6.1.0 gcc-9.2.0/gmp
    ln -s isl-0.18 gcc-9.2.0/isl
    ln -s mpfr-3.1.4 gcc-9.2.0/mpfr
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 配置编译参数,生成Makefile。
    mkdir -p $CODE_ROOT/gcc-9.2.0-build
    cd $CODE_ROOT/gcc-9.2.0-build
    ../gcc-9.2.0/configure --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib
    
    • 1
    • 2
    • 3

    第一遍编译和安装

    使用低版本GCC,编译、构建高版本GCC。
    默认情况下,安装路径为/usr/local

    cd $CODE_ROOT/gcc-9.2.0-build
    make -j8
    make install
    
    • 1
    • 2
    • 3

    第二遍编译和安装

    使用高版本GCC,重新构建一次。
    默认情况下,安装路径为/usr/local

    export PATH=/usr/local/bin:$PATH
    cd $CODE_ROOT/gcc-9.2.0-build
    rm -rf *
    ../gcc-9.2.0/configure --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib
    make -j8
    make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    资源链接

  • 相关阅读:
    Mysql.索引篇 一次搞清楚八股文
    有序表2:跳表
    Tomcat安装及配置
    传奇开区网站如何添加流量统计代码
    [附源码]计算机毕业设计JAVA新冠疫苗线上预约系统
    玩机搞机----安卓全机型修改 开机动画 步骤教程
    计算机毕业设计java毕业设计项目源代码SSM学院毕业设计管理系统|成绩|文档[包运行成功]
    黑豹程序员-Spring Task实现定时任务
    python GUI(五)预设弹窗介绍
    《宝塔面板教程1》:宝塔面板安装命令及安装要求
  • 原文地址:https://blog.csdn.net/babyblue_963/article/details/133499469