• RHEL 6.5升级GCC 4.9.3


    前提:保证旧版的gcc,g++存在! root用户


    1. 下载源码和依赖包源码:新建目录bak
    wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.gz

    #Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
    wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
    wget http://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.gz
    wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.0.tar.gz

    $ ls bak/*.gz
    bak/gcc-4.9.3.tar.gz bak/gmp-5.0.1.tar.gz bak/mpc-0.9.tar.gz bak/mpfr-3.1.0.tar.gz

    2. 编译
    解压tar包,并新建编译目录 t t1 t2 t3,分别进行以上源码编译
    $ ls bak
    t t1 t2 t3

    cd t1
    ../gmp-5.0.1/configure --prefix=/usr/local/gmp-5.0.1
    make
    make install
    
    cd t2
    ../mpfr-3.1.0/configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1
    make
    make install
    
    cd t3
    ../mpc-0.9/configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0
    make
    make install
    
    #设置链接,在/etc/profile文件末尾加上,注意修改后运行#source /etc/profile 使其生效即可
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib
    
    cd t
    ../gcc-4.9.3/configure --prefix=/usr/local/gcc-4.9.3  --with-mpc=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --disable-multilib --enable-languages=c,c++ --enable-threads=posix --disable-checking
    make
    make install
    编译安装

    3. 切换GCC到新版:
    [root@localhost bin]# pwd
    /usr/bin
    [root@localhost bin]# mv gcc gcc-4.4.7
    [root@localhost bin]# ln -s /usr/local/gcc-4.9.3/bin/gcc /usr/bin/gcc
    [root@localhost bin]# mv g++ g++-4.4.7
    [root@localhost bin]# ln -s /usr/local/gcc-4.9.3/bin/g++ /usr/bin/g++

    4. ok,确认版本
    gcc -v
    g++ -v

    ----补充:

    若可以联网的话,有以下两个参考,未测试过

    1.下载供编译需求的依赖项

    参考文献[1]中说:这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。

    cd gcc-4.9.3 
    ./contrib/download_prerequisites 


    2. 编译(注意:此步骤非常耗时)

    make -j4
    -j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。

    如果报错错误集中在 x86_64unknown-linux-gnu/32/libgcc 和 x86_64-unknown-linux-gnu/libgcc
    根据参考文献[3],安装如下两个软件包(仅用于CentOS6.X):
    yum -y install glibc-devel.i686 glibc-devel

    1. 安装静态库,如果没有安装静态库,后面编译不会通过;

    yum groupinstall "Development Tools" 
    yum install glibc-static libstdc++-static -y
    yum -y install glibc-devel.i686 glibc-devel

    4. 进入目录;

    cd gcc-x.x.x

    5. 运行脚本download_prerequisites,此脚本会自动下载依赖库;

    ./contrib/download_prerequisites

    6. 新建临时目录,用于存放编译过程中的临时文件;

    mkdir gcc-build

    cd gcc-build

    7. 配置编译选项;

    ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

    8. 编译安装,过程十分漫长,在我的小霸王上足足编了2个多小时;

    make & make install


     

  • 相关阅读:
    AJAX跨域JS访问
    dd
    学习java,搭建一个英文名著轻松阅读网站
    超载问题求解!!!
    nginx + uwsgi 部署Django项目
    一种算法问题,求指点!
    js除法余数
    button捕捉回车键
    为SQL表添加全文索引范例
    .Net刷新页面的小结
  • 原文地址:https://www.cnblogs.com/book-gary/p/5123811.html
Copyright © 2020-2023  润新知