zoukankan      html  css  js  c++  java
  • centos7 gcc升级

    1. 安装必备

    yum groupinstall "Development Tools"
    yum install glibc-static libstdc++-static
     
    2. 编译安装 gcc 
    another place recommendated is ustc opensouce mirror https://mirrors.ustc.edu.cn/gnu/gcc/
     
    wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-7.3.0/gcc-7.3.0.tar.gz
    tar -zxvf  gcc-7.3.0
    cd gcc-7.3.0
    ./contrib/download_prerequisites   #安装依赖库,以前升级gcc非常麻烦,因为gcc依赖了mpfr、gmp、mpc 和isl共四个库,下载也麻烦 ,现在简单了
    mkdir build
    cd build
    #在gcc目录,执行配置命令:               ./configure  --prefix=/usr/local/gcc7.3.0 --enable-multilib;
    #如果只需要支持c,c++编译器,则执行配置命令:./configure  --prefix=/usr/local/gcc7.3.0 --disable-multilib --enable-languages=c,c++
    # –enable-checking=release 增加一些检查,也可以–disable-checking生成的编译器在编译过程中不做额外检查
    #–enable-languages=c,c++ 你要让你的gcc支持的编程语言
    #–disable-multilib 取消多目标库编译(取消32位库编译)
    ../configure --prefix=/usr/local/gcc7.3.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib
    make    # or make -j 4 which could determin the parallel compiling job number.
    make install   #here would install to the folder /usr/local/gcc7.3.0 which is specified by argument --prefix

    optional step:

    uninstall lower version of gcc if you has already installed in the system.

    rpm -q gcc       #query if gcc has installed
    rpm -q gcc-c++   #query if gcc-c++ has installed 
    rpm -e   {package name which has listed if you have gcc installed, on centos 7, it maybe list as follows}
    #gcc-4.8.5-16.el7_4.2.x86_64
    #gcc-c++-4.8.5-16.el7_4.2.x86_64

    3. add gcc to the system path

    vim /etc/profile
    add the following content at the end of file:
    export PATH=$PATH:/usr/local/gcc7.3.0/bin

    or just create a soft link to /usr/bin

    sudo ln -s /usr/local/gcc7.3.0/bin/gcc /usr/bin/gcc
    sudo ln -s /usr/local/gcc7.3.0/bin/g++ /usr/bin/g++

     4. view the gcc version

    gcc --version
    g++ --version

    output:

     4. FAQ

    /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required

    solution:

    find / -name libstdc++.so*

    output:

    /usr/lib64/libstdc++.so.6
    /usr/lib64/libstdc++.so.6.0.19
    /usr/lib64/libstdc++.so.6.0.24
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
    /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
    /usr/local/lib64/libstdc++.so.6.0.24
    /usr/local/lib64/libstdc++.so.6
    /usr/local/lib64/libstdc++.so
    /usr/local/lib64/libstdc++.so.6.0.24-gdb.py

    找到这个这个目录下面的libstdc++.so.6.0.xx,我的是24

    cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64
    ldconfig   #this is required 

    5. Alternative solution( not recommondated)

    5.1 install devtoolset-6

    sudo yum install centos-release-scl
    sudo yum install devtoolset-6
    scl enable devtoolset-6 bash
    sudo yum list devtoolset-6*

    5.2. change default gcc version using command like:

    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6.3 40 
    sudo update-alternatives --config gcc

    if u don't want gcc 6 as your default gcc version, you can enable it  just in  the current terminal:

    scl enable devtoolset-6 bash

    reference:
    https://www.cnblogs.com/dalanjing/p/10618575.html

  • 相关阅读:
    POJ 3660 Cow Contest
    HDOJ 2093 sscanf的使用,字符串对齐,快排
    HDOJ 2091 空格的特殊输入输出格式
    COJ 1081: 集训队分组
    HDOJ 2948 错排公式
    POJ 1936 All in All
    POJ 1035 Spell checker
    HDOJ 2094 set和map的使用
    HDOJ 2036 多边形的面积
    HDOJ 1166 敌兵布阵
  • 原文地址:https://www.cnblogs.com/lenmom/p/11318956.html
Copyright © 2011-2022 走看看