CentOS7 升级GCC问题

CentOS 7升级GCC后, man命令无法查看GCC的manual. 但是gcc --help却可以使用

你升级的方式是???
因为 man是需要调用安装好的各种文档的,rpm安装,是默认会添加到调用进去,
但如果你的升级方式,不是rpm 或者yum update的形式,就需要自己添加,或者,没调用成功,都自行检查或者设置。

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7548277
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:CentOS 7 升级GCC编译器
  • 除此之外, 这篇博客: Centos 下 GCC 版本更新中的 方法一 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 下载对应版本的 gcc 源码,而编译源码首先需要本地拥有编译器

    # 安装一些可能用到编译的工具
    # 我的 centos 下默认的 gcc 版本是 4.8, 这也是我需要更新 gcc 的原因
    yum install -y gcc 
    yum install -y gcc-c++ 
    yum install -y wget
    yum install -y cmake 
    ...
    

    第一步,做一些编译前的准备工作,我这里以 5.4.0 版本为例,

    # 我习惯在 root 目录下编译
    cd /root
    
    # 下载 gcc 源码包 
    wget http:#mirrors.ustc.edu.cn/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2
    
    # 解压缩
    tar xvf gcc-5.4.0.tar.bz2
    
    # 切换工作目录
    cd /root/gcc-5.4.0
    

    第二步,下载编译 gcc 的依赖项, gcc 中编写了下载依赖项的工具

    ./contrib/download_prerequisites
    

    这里如果没有报错最好,如果有报错大概率是登录 ftp 失败导致的下载失败,所以这里我的解决方案是修改一下这个下载工具,将 ftp 下载链接换成 http 的链接即可,只要修改地址的前缀

    vi ./contrib/download_prerequisites
    # 文件中含有的的 4 个 ftp 的地址,将 ftp 字段换成 http 保存
    # 然后重新执行这个文件
    

    第三步,设置编译输出路径,生成 Makefile 文件

    mkdir build
    cd build
    ../configure -prefix=/usr/local --enable-checking=release --enable-languages=c,c++ --disable-multilib
    

    第四步,编译和编译安装

    make
    # make -j4 多线程编译
    make install 
    

    最后一步,调整环境变量

    # 环境变量path
    # 我设置的 /usr/local/bin 优先级本来就在 /usr/bin 前面,所以不用在额外导入了
    # echo  "export PATH=/usr/local/bin:$PATH" >> /etc/profile.d/gcc.sh
    # source /etc/profile.d/gcc.sh
    
    # 头文件
    ln -sv /usr/local/include/ /usr/include/gcc
    
    # 库文件
    echo "/usr/local/lib64" >> /etc/ld.so.conf.d/gcc.conf
    

    还有一种方式修改环境变量

    vi /etc/profile, 追加
    export PATH=/usr/local/bin:$PATH
    export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/include/
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64
    

    当然这些追加的地址根据实际执行 configure 时配置的路径自己修改

  • 您还可以看一下 王利涛老师的Linux内核编程:入门篇课程中的 交叉编译器的选择(上):GCC小节, 巩固相关知识点

直接下载gcc源码进行编译并安装就行了,这是最方便的方式,而且你想安装哪个版本就安装哪个版本!