之前写过在linux下升级gcc 4.8至gcc 4.9的过程,现在gcc最新的版本是8,有些软件必须是gcc 7或者以上的版本才可以编译,比如clickhouse,gcc 7的安装过程和之前基本上一样,但是安装要独立安装,不要覆盖系统的gcc,因为大部分软件还是使用系统的gcc编译,这里gcc 7是分开使用,下面简单说一下安装的过程,

这里安装的是gcc 7.3,下载页面:http://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.3.0/,下载的包为:gcc-7.3.0.tar.xz

1). 安装gcc所需要的依赖

新版的gcc同样是依赖gmp,mpfr,mpc这3个包,版本要求不需要太高,编译出错时会给出提示,具体参考之前的文章安装即可,除了编译源码安装之外还可以使用下面的yum在线安装:

yum install gmp-devel
yum install mpfr-devel
yum install libmpc-devel

这样很快就搞定了.

2). 编译gcc 7.3

释放安装包:

xz -d gcc-7.3..tar.xz
tar -xvf gcc-7.3..tar
cd gcc-7.3./

编译源码:

./configure --prefix=/monchickey/gcc7 --disable-multilib    # 注意指定到自己的目录,第二个参数是关闭32位指令,仅使用64位.
make -j4
make install

然后又是漫长的等待,比gcc 4的编译还要慢,基本上需要1个多小时

3). 相关配置

编译完成之后执行 /monchickey/gcc7/bin/gcc -v 就可以看到版本号了,为了便于使用,可以执行下面命令建立软链接:

ln -s /monchickey/gcc7/bin/gcc /usr/bin/gcc-
ln -s /monchickey/gcc7/bin/g++ /usr/bin/g++-

这样就可以直接执行gcc-7或者是g++-7调用命令了,很多软件编译时一般不直接调用gcc或者g++命令,而是用CC和CXX代替,所以需要使用gcc 7进行编译时可以执行命令 export CC=gcc- CXX=g++- 临时导入环境变量,这样本次编译就可以使用gcc 7了,下次进入shell时变量消失,不影响原有的环境,当然具体配置还需要参考软件的文档,不过很多软件编译时都用了这种方式.

centos7下安装gcc7的更多相关文章

  1. CentOS7 下 安装 supervisor以及使用

    CentOS7 下 安装 supervisor 以及使用 手动安装 [注] linux环境必须安装 python 1.获取supervisor包:[https://pypi.python.org/py ...

  2. Linux CentOs7 下安装 redis

    Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装  命令如下 $ yum install gcc-c++ $ wget ht ...

  3. Centos7下安装配置Redsocks

    Redsocks是一个开源的网络程序,代码依赖开源的libevent网络库.Redsocks允许你将所有TCP连接重定向到SOCKS或HTTPS代理,比如Shadowsocks(Centos7下安装配 ...

  4. CentOS7下安装SVN服务端

    CentOS7下安装SVN服务 1. yum命令即可方便的完成安装# sudo yum install subversion 测试安装是否成功:# svnserve --version 更改svn的默 ...

  5. centOS7下安装GUI图形界面

    1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...

  6. CentOS7下安装MySQL并配置远程连接

    一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的 ...

  7. Docker学习笔记3:CentOS7下安装Docker-Compose

    Docker-Compose是一个部署多个容器的简单但是非常必要的工具. 安装Docker-Compose之前,请先安装 python-pip,请参考我的另一篇博文CentOS7下安装python-p ...

  8. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  9. centos7 下 安装部署nginx

    centos7 下 安装部署nginx 1.nginx安装依赖于三个包,注意安装顺序 a.SSL功能需要openssl库,直接通过yum安装: #yum install openssl b.gzip模 ...

随机推荐

  1. Nginx教程/概述

    Nginx(发音同engine x)是一个异步框架的 Web服务器,也可以用作反向代理,负载平衡器 和 HTTP缓存.该软件由 Igor Sysoev 创建,并于2004年首次公开发布.同名公司成立于 ...

  2. Spring的核心之IoC容器创建对象

    Spring的Ioc容器,是Spring的核心内容: 作用:对象的创建和处理对象的依赖关系. Spring容器创建对象有以下几种方式: 1:调用无参数的构造器 <!-- 默认无参的构造器 --& ...

  3. spring 中常用的两种事务配置方式以及事务的传播性、隔离级别

    一.注解式事务 1.注解式事务在平时的开发中使用的挺多,工作的两个公司中看到很多项目使用了这种方式,下面看看具体的配置demo. 2.事务配置实例 (1).spring+mybatis 事务配置 &l ...

  4. POJ3237 Tree 树链剖分 线段树

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - POJ3237 题意概括 Description 给你由N个结点组成的树.树的节点被编号为1到N,边被编号为1 ...

  5. 6-4 破碎的键盘 uva11988

    基础的数组链表 用cur标记光标之前的  用last标记最后的十分巧妙 数组开的不够大会引起RE!! next[0]=0:这使得最后一项所指的为0 核心语句: next[i]=next[cur] ne ...

  6. 7-6 Bandwidth UVA140

    没有清空向量导致debug了好久 这题难以下手  不知道怎么dfs 原来是用排序函数. letter[n]=i; id[i]=n++; 用来储存与设置标记十分巧妙 for(;;) { while(s[ ...

  7. 深入理解 Array.prototype.map()

    深入理解 Array.prototype.map() map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果. 语法 let new_array = arr.map ...

  8. mysql参数innodb_flush_log_at_trx_commit

    查看mysql数据库innodb_flush_log_at_trx_commit : mysql> SHOW GLOBAL VARIABLES LIKE 'innodb_flush_log%'; ...

  9. Shiro自定义过滤器

    项目中需要所有首次登录的用户必须修改密码才可使用系统,项目采用的是Shiro框架. 突然想到了配置文件org.apache.shiro.spring.web.ShiroFilterFactoryBea ...

  10. Python3Numpy——相关性协方差应用

    基本理论 Correlation Are there correlations between variables? Correlation measures the strength of the ...