• 【配置与安装】CentOS7 升级gcc版本


     

    0.准备升级环境和源码包

    CentOS7软件库中的GCC是4.8.5版本,在编译C语言时,在用到C99规范时需要自己指定以c99的规范编译-std=c99很麻烦。所以考虑升级一下gcc编译器。GCC必须要我们自己编译源码升级。所以需要做好以下准本工作。

    1.下载gcc的源码包

    https://mirrors.aliyun.com/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz

    这个是阿里的镜像,最新版本是10.1.0,这里下载的是 8.2.0版本。

    2.搭建编译环境

    yum -y install gcc  
    yum -y install gcc-c++ 
    yum -y install bzip2

    说明一下:如果没有安装bzip2,会在下载依赖库时报如下错误

    tar (child): lbzip2: Cannot exec: No such file or directory 
    tar (child): Error is not recoverable: exiting now 
    tar: Child returned status 2 
    tar: Error is not recoverable: exiting now

    1.安装

    1.1 安装依赖库

    gcc依赖了mpfr、gmp、mpc 和is这四个库,现在在gcc的文件中整合了一个shell脚本,我们通过执行脚本文件快速安装依赖。注意:该脚本需要在gcc文件夹内执行。

    [root@model gcc-8.0.2]# ./contrib/download_prerequisites
    1.2 配置
    1. 建立编译输出文件。
    2. 配置命令如下
    [root@model gcc-8.0.2]# ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    命令说明:
    • –enable-languages=c,c++:只需要支持c/c++编译器即可。
    • –disable-multilib:指不需要支持多平台的gcc,如果是64位就仅安装64位的gcc。也可以选择支持。选择支持的话,你要先安装32位的开发库,命令如下:
    sudo yum install libgcc.i686
    sudo yum install glibc-devel.i686
    • 如果不是在所期望安装的目录中,还需要加上--prefix=/usr/gcc8.0.2,后面改成自己的目录。
    1.3 编译
    
    
    [root@model gcc-8.0.2]# make
    1.4 安装
    [root@model gcc-8.0.2]# make install
    1.5 配置永久环境变量
    [root@model gcc-8.0.2]# vim /etc/profile

    配置系统文件 /etc/profile,在末尾添加语句:

    export PATH=/usr/gcc8.2.0/bin:$PATH

    再执行source命令,使该系统文件立即生效:

    [root@model gcc-8.0.2]# source /etc/profile

    2.测试

    [root@model gcc-8.0.2]# gcc --version
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/gcc8.2.0/libexec/gcc/x86_64-pc-linux-gnu/8.2.0/lto-wrapper
    Target: x86_64-pc-linux-gnu
    Configured with: ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --prefix=/usr/gcc8.2.0
    Thread model: posix
    gcc version 8.2.0 (GCC) 
    [root@model gcc-8.0.2]# 

    结束。。。。

    3.清除安装包

    升级gcc后,压缩包和安装包可以被清除掉:

    [root@model home]# ls
    gcc-8.2.0.tar.gz  gcc-8.2.0
    [root@model home]# rm -rf gcc-8.2.0*
  • 相关阅读:
    switch-case的用法
    关于string
    串的顺序存储和链式存储
    【APIO2009T1】采油区域-分类讨论+动态规划
    【APIO2009T1】采油区域-分类讨论+动态规划
    【BashuOJ2963】数字游戏-DFS+剪枝
    【BashuOJ2963】数字游戏-DFS+剪枝
    【POJ3177】Redundant Paths-边双连通分量+缩点
    【POJ3177】Redundant Paths-边双连通分量+缩点
    【POJ2942】Knights of the Round Table-点双连通分量+判断奇环
  • 原文地址:https://www.cnblogs.com/SchrodingerDoggy/p/14283314.html
Copyright © 2020-2023  润新知