centos上编译gcc的过程

1 查看当前版本

  • 编译新版 gcc 需要旧版支持(因为要编译)
  • 确认是否有安装 gcc

    gcc -v
    
  • 如果没有安装 gcc, 如果机子有联网,则可以使用以下方法

    yum -y install gcc
    yum -y install gcc-g++
    

2 安装新版本

  1. 解压

    tar -jxvf gcc_4.9.0.tar.bz2       / tar -zxvf gcc_4.9.0.tar.gz
    
  2. 下载依赖项

    cd gcc-4.9.0
    ./contrib/download_prerequisites
    

    如果网络不好,这步不能执行完毕的,可进行如下操作:

    • 将相应的三个文件拷贝到 gcc-4.9.0 文件夹中,下载链接:http://download.csdn.NET/detail/alex_my/7681299

    • 复制好后,执行以下命令。这些命令均可在./contrib/download_prerequisites 中看见

      tar -jxvf gmp-4.3.2.tar.bz2
      tar -zxvf mpc-0.8.1.tar.gz
      tar -jxvf mpfr-2.4.2.tar.bz2
      ln -sf gmp-4.3.2 gmp
      ln -sf mpc-0.8.1 mpc
      ln -sf mpfr-2.4.2
      
  3. 下载完成后,返回上层目录,建立”编译输出目录”

    cd ..
    mkdir gcc-build-4.9.0
    cd gcc-build-4.9.0
    ../gcc-4.9.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    
  4. 机子比较老,双核心 请按照 CPU 核心自行修改数字。

    make -j2
    
  5. 经过漫长的等待,终于结束了。接下来换 root 账户

    su root
    password:
    make install
    
  6. 一般 gcc/g++会安装到/usr/local/bin 中,而编译时默认使用的是/usr/bin 中的版本,因此,需要重新制作链接。

    rm -rf /usr/bin/gcc
    rm -rf /usr/bin/g++
    ln -s /usr/local/bin/gcc /usr/bin/gcc
    ln -s /usr/local/bin/g++
    
  7. 替换库

    cp /usr/local/lib64/libstdc++.so.6.0.xxx /usr/lib64/
    cd /usr/lib64
    rm -rf libstdc++.so.6
    ln -s libstdc++.so.6.0.19 libstdc++.so.6
    
  8. 安装完毕后,使用 gcc -v 查看版本。