上一篇的SVS要用gcc6.3编译,否则结果不正确,本来以为gcc很好装,结果发现用apt-get安装gcc6只能安装6.5版本,代码作者奇特的要求只能用gcc6.3,没办法只能用源码装了,期间碰见了各种各样的问题,特此记录。

1.环境要求

安装gcc之前要安装gmp,mpfr,mpc,isl这几个库,并且要卸载旧的gcc,然而我们需要在最后安装gcc之前再卸载旧的gcc,因为安装必需的库时需要旧的gcc。

2.安装gmp

去官网下载最新的包,之后直接解压到想要安装的位置。安装步骤如下

$ cd gmp-6.1.2/

$ mkdir build

$ cd build/

$ ../configure -prefix=/usr/local/gmp-6.1.2

$ make -j12

$ sudo make install

我们把gmp安装在了/usr/local目录下,使用参数-j12是可以调用多线程加速编译的过程。

3.安装mpfr

同样是在官网下载最新的包,而后解压,安装步骤类似上一步。

$ cd mpfr-4.0.1/

$ mkdir build

$ cd build/

$ ../configure --prefix=/usr/local/mpfr-4.0.1 --with-gmp=/usr/local/gmp-6.1.2

$ make -j12

$ sudo make install

因为用到了上一步安装的gmp,因此mpfr的安装需放在gmp之后。

4.安装mpc

步骤依旧同上,源码在官网。

$ cd mpc-1.1.0/

$ mkdir build

$ cd build/

$ ../configure -prefix=/usr/local/mpc-1.1.0 -with-gmp=/usr/local/gmp-6.1.2 -with-mpfr=/usr/local/mpfr-4.0.1

$ make -j12

$ sudo make install

同时用到了gmp和mpfr。

5.安装isl

其实这一步不是必需的,但是我在某一步被卡住,然后发现是用到了isl库中的一个头文件,因此才安装这个库。isl的官网没有找到,但是有一个ftp上可以下载。ftp地址:ftp://gcc.gnu.org/pub/gcc/infrastructure/

$ cd isl-0.18/

$ mkdir build

$ cd build/

$ ../configure --prefix=/usr/local/isl-0.18 --with-gmp=/usr/local/gmp-6.1.2

$ make -j12

$ sudo make install

只用到了gmp。

6.安装gcc6.3

终于到了我们的目标,gcc6.3,首先我们需要卸载旧的gcc

$ sudo update-alternatives --remove-all gcc

这一步会将gcc和g++相关卸载。接下来我们需要在环境变量里配置一下刚刚安装的几个库。

$ gedit ~/.bashrc

然后在最后加一行

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib:/usr/local/isl-0.18/lib:/usr/local/lib:/usr/lib/x86_64-linux-gnu

如果不进行上面一步的话,可能会出现如下的错误

checking for suffix of object files... configure: error: in '/home/manu/gcc/gcc/i686-pc-linux-gnu/libgcc':

configure: error: cannot compute suffix of object files: cannot compile

See 'config.log' for more details.

一般缺少库都会产生这样的错误,我们需要打开config.log进行具体查看。之前没有安装isl库的时候就会在log文件中显示出来,而终端并没有显示具体的error。

接下来就是编译安装gcc6.3,源码在官网的镜像里可以找到,随便选一个ftp服务器,然后在releases分支里找到gcc6.3下载,之后解压。

$ cd gcc-6.3.0/

$ mkdir build

$ cd build/

$ ../configure --prefix=/usr/local/gcc-6.3 --disable-multilib --with-system-zlib --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 --with-mpc=/usr/local/mpc-1.1.0 --with-isl=/usr/local/isl-0.18

$ make -j12

$ sudo make install

如果你需要gcc编译其他语言的话,可以在languages那里添加。make的过程非常漫长,就算我用了12个线程跑,也花了10分钟左右。

因为我们删除了gcc的链接,因此为了更方便地使用gcc,需要重新链接

$ cd /usr/bin

$ sudo ln -s /usr/local/gcc-6.3/bin/gcc gcc

$ sudo ln -s /usr/local/gcc-6.3/bin/g++ g++

最后检查一下gcc的版本

$ gcc -v

gcc-linux6.3,[环境配置]Ubuntu16.04下编译安装gcc6.3.0相关推荐

  1. 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080/980ti+CUDA8.0

    8月份的时候折腾tensorflow,在ubuntu上安装nvdia显卡驱动一直有问题,没有折腾好,今天看到这篇文章,起到了一定的帮助,记录一下. bing上搜索关键字,一定要搜索 ubuntu 16 ...

  2. ubuntu16.04下编译安装OpenCV

    一: 预先配置 为使OpenCV的安装在编译时更完备,预先安装好所有的开发平台: 二:编译OpenCV 在OpenCV官网下载UNIX的源码包: 安装一下软件: sudo apt-get instal ...

  3. msgpack php 安装,在ubuntu16.04下编译安装php7的扩张msgpack2.0.1

    提示如下错误:C语言忘光了,查看了msgpack.c的源码 不知道如果处理,望高手帮助 /data/softwares/php-7.1.0beta3/ext/msgpack-2.0.1/msgpack ...

  4. 深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow

    http://f.dataguru.cn/thread-660774-1-1.html 发表于 2016-7-20 09:04 | 只看该作者 |倒序浏览 |阅读模式 深度学习主机环境配置: Ubun ...

  5. Ubuntu16.04下TensorFlow-GPU安装记录(GTX1060显卡)

    Ubuntu16.04下TensorFlow-GPU安装记录 1 确定电脑型号(重要的是显卡型号) 2 确定CUDA版本.ubuntu版本 3 Win10系统下安装Ubuntu组成双系统(简述过程) ...

  6. linux系统脚本安装失败,ubuntu16.04下vim安装失败的原因分析及解决方案

    先给大家说下问题描述? 重装了ubuntu系统,安装vim出现了以下问题: sudo apt-get install vim 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信 ...

  7. 深度学习环境配置5——windows下的torch-cpu=1.2.0环境配置

    深度学习环境配置5--windows下的torch-cpu=1.2.0环境配置 注意事项 一.2021/10/8更新 学习前言 各个版本pytorch的配置教程 环境内容 环境配置 一.Anacond ...

  8. ubuntu16.04源码安装opencv3.4.0

    ubuntu16.04源码安装opencv3.4.0 opencv下载地址:https://opencv.org/releases/page/3/ 1.下载安装包 2.安装依赖 sudo apt-ge ...

  9. centos 6 mysql 5.7.13 编译安装_Centos 6.5系统下编译安装PHP 7.0.13的方法

    PHP7.0正式版也出来了,今天编译安装了一下,写下安装步骤,我是在centos6.6 环境中编译的,下面是详细的安装步骤 环境依赖 yum install gcc gcc-c++ libxml2 l ...

最新文章

  1. mysql分类和事务回滚
  2. 使用thrift进行跨语言调用(php c# java)
  3. CV报错:CAP_IMAGES: can‘t find starting number (in the name of file): x in function ‘icvExtractPattern‘
  4. Nginx文档阅读笔记-Reverse Proxy vs. Load Balancer(反向代理与负载均衡)
  5. IOS开发基础知识--碎片23
  6. web字体设置成平方字体_如何托管自己的Web字体
  7. SQL的简单增、删、改
  8. python 获取当前路径_Python获取当前路径实现代码
  9. 体验为王-2021友盟+移动性能优化比赛第一名作品
  10. 济南市公安局人口数据备份库项目(数据复制)之二
  11. 【珍藏版】震撼发布2017年Android百大框架排行榜
  12. IT行业就业前景如何
  13. 苹果iPhone白屏死机?如何修复?
  14. Redis集群(读写分离、哨兵机制、Cluster集群)
  15. AD---通过组策略推送软件给客户端
  16. 稳压二极管有什么特性?稳压二极管的特点
  17. Apple:万亿收入指日可待
  18. 病毒无孔不入:电邮一打开病毒自然来(转)
  19. 高考数学中含有导函数与原函数方程的题目
  20. 如何用PHP实现上传图片功能

热门文章

  1. android密码解锁/指纹解锁返回的authToken深度解剖
  2. Java synchronized 实现生产者-消费者模型
  3. MoeCTF 2021Re部分------RedC4Bomb
  4. 2020-11-8(activity状态以及任务栈)
  5. 011 数据结构逆向—二叉树
  6. 5.用户APC执行过程
  7. 【yml】YAML 语言教程--- 字符串
  8. 21、 TRUNCATE:清空表记录
  9. 2.4.2 死锁的处理策略-预防死锁
  10. Spring boot的场景启动器