• CentOS7 手动编译升级GCC至9.3.0


    1)下载GCC9.3.0源码并解压

    GCC官方FTP下载地址可以看到GCC最新版本为9.3.0。由于官网下载速度慢,实际上用清华大学的镜像站进行下载,代码如下:

    wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
    #考虑到安装失败的可能性,创建一个临时文件夹来安装GCC
    sudo mkdir /opt/tmp
    cd /opt/tmp
    #解压安装包到临时文件夹里
    sudo tar -zxvf /home/paul/Downloads/gcc-9.3.0.tar.gz 

    我是通过迅雷直接下载:https://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz 然后上传到服务器

    2)下载依赖文件

    cd gcc-9.3.0/
    #下载gmp mpfr mpc等供编译需求的依赖项
    ./contrib/download_prerequisites    
    

      

    --------------------------------------------------------------------------------------------------------------------------------------

    没有出现错误可以略过以下操作

    执行命令会出现如下的错误,可能原因是从清华大学镜像下的安装包有过改动,不能通过sha512验证

    gmp-6.1.0.tar.bz2: FAILED
    sha512sum: WARNING: 1 computed checksum did NOT match
    error: Cannot verify integrity of possibly corrupted file gmp-6.1.0.tar.bz2
    

      查看download_prerequisites源码后, 在gcc-9.3.0目录下输入以下命令:

    #删除上一命令安装失败产生的gmp压缩包和目录
    rm gmp-6.1.0.tar.bz2 
    rm gmp-6.1.0
    #加--noverify选项禁止边下边验证
    ./contrib/download_prerequisites --no-verify
    

    --------------------------------------------------------------------------------------------------------------------------------------

    3)创建预编译目录

    mkdir  build  &&  cd build
    

    4)设置编译选项并编译

    ../configure --prefix=/usr/local/gcc-9.3.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib

    –-enable-languages表示你要让你的gcc支持哪些编程语言;
    -–disable-multilib表示编译器不编译成其他平台的可执行代码;
    -–disable-checking表示生成的编译器在编译过程中不做额外检查
    –-enable-checking=xxx 表示编译过程中增加XXX检查
    –prefix=/usr/local/gcc-9.3.0 指定安装路径
    –enable-bootstrap 表示用第一次编译生成的程序进行第二次编译,然后用再次生成的程序进行第三次编译,并且检查比较第二次和第三次结果的正确性,也就是进行冗余的编译检查工作。 非交叉编译环境下,默认已经将该值设为 enable,可以不用显示指定;交叉编译环境下,需要显示将其值设为 disable。

    5)安装

    #编译生成makefile文件
    make
    #安装GCC
    sudo make install
    

    6)安装后的设置

    #设置环境变量
    touch /etc/profile.d/gcc.sh
    sudo chmod 777 /etc/profile.d/gcc.sh 
    sudo echo -e '\nexport PATH=/usr/local/gcc-9.3.0/bin:$PATH\n' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh
    
    #设置头文件
    sudo ln -sv /usr/local/gcc/include/ /usr/include/gcc
    
    #设置库文件
    touch /etc/ld.so.conf.d/gcc.conf
    sudo chmod 777 /etc/ld.so.conf.d/gcc.conf 
    sudo echo -e "/usr/local/gcc/lib64" >> /etc/ld.so.conf.d/gcc.conf
    
    #加载动态连接库
    sudo ldconfig -v
    ldconfig -p |grep gcc
    

    7)测试版本号

    #测试
    gcc -v
    

    敲入命令后,终端显示如下文字,说明已成功安装GCC9.3.0

    Target: x86_64-pc-linux-gnu
    Configured with: …/configure --prefix=/usr/local/gcc-9.3.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
    Thread model: posix
    gcc version 9.3.0 (GCC)

    原文地址:https://blog.csdn.net/pauljjf/article/details/105171154

  • 相关阅读:
    策略模式
    Properties类学习笔记
    System类学习笔记
    一个反射的妙用案例
    new 对象时的暗执行顺序
    常用数据库默认端口号
    java对日开发常用语(词汇)总结
    java开发中常用语(词汇)含义
    MyBatis 常用词汇含义
    java SE,EE,ME区别
  • 原文地址:https://www.cnblogs.com/nsw2018/p/15660580.html
Copyright © 2020-2023  润新知