zoukankan      html  css  js  c++  java
  • centos7.7安装高版本gcc7.5实践

    centos7.7编译安装GCC7.5.0版本

    编译新版本的gcc,实际上也是需要一个低版本的gcc来编译的,毕竟所有的编译文件都是c语言开发出来的,所以系统中需要事先存在gcc才行,我们先来使用dnf命令安装一下。

    1、安装旧版本gcc编译环境

    [root@localhost ~]# dnf isntall gcc gcc-c++ -y
    

    使用默认的yum源安装的gcc版本还是很低的,这也正是我们需要编译安装高版本的原因之一。

    2、安装其他的编译环境

    [root@localhost ~]# dnf install -y gmp-devel mpfr-devel libmpc-devel
    

    3、安装isl工具

    isl工具是编译新版本gcc时需要用到的,因此需要提前安装。

    [root@localhost ~]# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.15.tar.bz2 
    
    3.1、安装bzip2工具,不然没法解压
    [root@localhost ~]# dnf install lbzip2 -y
    
    3.2、解压
    [root@localhost ~]# tar xf isl-0.15.tar.bz2 -C /usr/local
    
    3.3、编译安装
    [root@localhost ~]# cd /usr/local/isl-0.15
    [root@localhost ~]# ./configure
    [root@localhost ~]# make && make install
    

    4、编译安装gcc7.5

    4.1、下载gcc7.5.0的包
    [root@localhost ~]# wget http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-7.5.0/gcc-7.5.0.tar.gz
    
    4.2、解压到/opt目录下。
    [root@localhost ~]# tar xf gcc-7.5.0.tar.gz -C /usr/local
    [root@localhost local]# cd /usr/local && ls
    bin  games  gcc-7.5.0  include  lib64  sbin  srcetc  lib  libexec  share
    

    可以看到gcc-7.5.0这个目录是解压后的gcc包。

    4.3、进入到/usr/local目录下,创建一个临时目录
    [root@localhost local]# mkdir /tmp
    

    注意:创建临时目录的原因是因为gcc在编译过程中需要临时放置一些文件,如果都放在gcc-7.5.0目录下是不建议的,因此建议分开。

    4.4、执行configure命令
    [root@localhost local]# cd tmp
    [root@localhost tmp]# ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib
    

    --prefix指定新版本gcc安装的路径。

    4.5、增加编译库依赖地址,编译
    [root@localhost tmp]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    [root@localhost tmp]# make -j 4
    

    编译的时间比较长,将近一个小时。这里指定4个核心来编译。

    4.6、安装
    [root@localhost tmp]# make install
    

    5、创建gcc软链接。

    一般都会要求新旧版本共存,万一某些应用依赖旧版本的gcc呢?

    [root@localhost tmp]# ln -sf /usr/local/gcc7/bin/gcc /usr/bin/gcc
    [root@localhost tmp]# ln -sf /usr/local/gcc7/bin/g++ /usr/bin/g++
    [root@localhost tmp]# ln -sf /usr/local/gcc7/include/c++/7.5.0 /usr/include/c++/7.5.0
    [root@localhost tmp]# ln -sf /usr/local/gcc7/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6
    

    6、测试是否安装成功

    [root@localhost local]# gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/local/gcc7/libexec/gcc/x86_64-pc-linux-gnu/7.5.0/lto-wrapper
    Target: x86_64-pc-linux-gnu
    Configured with: ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib
    Thread model: posix
    gcc version 7.5.0 (GCC) 
    [root@localhost local]#
    [root@localhost local]# g++ -v
    Using built-in specs.
    COLLECT_GCC=g++
    COLLECT_LTO_WRAPPER=/usr/local/gcc7/libexec/gcc/x86_64-pc-linux-gnu/7.5.0/lto-wrapper
    Target: x86_64-pc-linux-gnu
    Configured with: ../gcc-7.5.0/configure --prefix=/usr/local/gcc7 --enable-language=c,c++,go --disable-multilib
    Thread model: posix
    gcc version 7.5.0 (GCC)
    
  • 相关阅读:
    C# 代码中调用 Javascript 代码段以提高应用程序的配置灵活性(使用 Javascript .NET 与 Jint)
    非软件行业公司自建软件开发部门能力不强的原因分析
    编程经验点滴----巧妙解决 Oracle NClob 读写问题
    编程经验点滴----在 Oracle 数据库中保存空字符串
    这几天上海移动网络可以直接打开 Google Play 了
    品牌电脑硬盘损坏后,使用MediaCreationTool从微软官方下载正版Windows到USB做安装盘
    编程经验点滴----使用接口表保存可能并发的业务,然后顺序处理
    生产打印系统的一些汇总--商业合同方面
    生产打印系统的一些汇总--概要
    外观模式
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/12994103.html
Copyright © 2011-2022 走看看