Hello World

行走即是圆梦,回望亦是前行。

0%

RedHat5升级安装gcc-7.5.0教程

前言

这里简单记录下RedHat5升级安装gcc-7.5.0教程

参考教程
gnu.gcc

安装环境

VMware® Workstation 16 Pro(16.0.0 build-16894299) + Red Hat5 32位

1
2
3
4
5
内存: 1GB
磁盘: 40GB
处理器内核数: 2
系统版本: Linux linuxas5 2.6.18-194.el5 #1 SMP Mon Mar 29 20:06:41 EDT 2010 i686 i686 i386 GNU/Linux
gcc 版本: 4.1.2 20080704 (Red Hat 4.1.2-48)

离线安装

  1. 下载gcc-7.5.0和依赖文件mpc-1.0.3gmp-6.1.0mpfr-3.1.4isl-0.16.1源码
  2. 新建目录gcc-7.5.0,将源码上传至目录下
    1
    $ mkdir /opt/gcc-7.5.0
  3. 进入到/opt/gcc-7.5.0下,解压源码并将依赖文件移动到gcc源码下
    1
    2
    3
    4
    5
    6
    $ cd /opt/gcc-7.5.0
    $ tar -xzvf gcc-7.5.0.tar.gz
    $ tar -xzvf mpc-1.0.3.tar.gz && mv mpc-1.0.3 gcc-7.5.0/mpc
    $ tar -jxvf gmp-6.1.0.tar.bz2 && mv gmp-6.1.0 gcc-7.5.0/gmp
    $ tar -jxvf mpfr-3.1.4.tar.bz2 && mv mpfr-3.1.4 gcc-7.5.0/mpfr
    $ tar -jxvf isl-0.16.1.tar.bz2 && mv isl-0.16.1 gcc-7.5.0/isl
  4. 创建编译目录build,执行配置命令configure生成Makefile,如果失败,可以查看config.log日志文件定位问题
    1
    2
    $ mkdir build && cd build
    $ ../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-nls --disable-multilib

    –enable-languages表示要让gcc支持的语言
    –disable-multilib不生成编译为其他平台可执行代码的交叉编译器
    –disable-checking生成的编译器在编译过程中不做额外检查,也可以使用–enable-checking=xxx来增加一些检查

  5. 执行make -j8进行编译,编译过程较慢,至少半小时以上,耐心等待即可,或可适当调整虚拟机处理器核心数
    1
    $ make -j8
  6. 执行make install进行安装(需要root权限),安装目录为/usr/local/bin
    1
    $ make install
  7. 创建软链接,替换系统的gcc程序,系统旧版本gcc(/usr/bin/gcc),可以使用which gcc查看具体目录
    1
    2
    $ mv /usr/bin/gcc /usr/bin/gcc.bak
    $ ln -s /usr/local/bin/gcc /usr/bin/gcc

在线安装

  1. 下载gcc-7.5.0
    1
    $ wget https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
  2. 新建目录gcc-7.5.0,将源码移动至目录下
    1
    2
    $ mkdir /opt/gcc-7.5.0
    $ mv gcc-7.5.0.tar.gz /opt/gcc-7.5.0
  3. 进入到/opt/gcc-7.5.0下,解压源码并下载依赖文件
    1
    2
    3
    $ cd /opt/gcc-7.5.0
    $ tar -xzvf gcc-7.5.0.tar.gz
    $ cd gcc-7.5.0 && ./contrib/download_prerequisites
  4. 剩余步骤同离线安装4-7

版本测试

1
2
3
4
5
6
7
8
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/i686-pc-linux-gnu/7.5.0/lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-nls --disable-multilib
Thread model: posix
gcc version 7.5.0 (GCC)