/usr/bin/g++*查看结果如下

/usr/bin/gcc-->gcc-5,  /usr/bin/gcc-5,

/usr/bin/gcc-ar-5,

/usr/bin/gcc-ar-->gcc-ar-5,

/usr/bin/gcc-nm-->gcc-nm-5

/usr/bin/gcc-ranlib-->gcc-ranlib-5,  /usr/bin/gcc-ranlib-5.

由于CUDA8.0中要求gcc版本为gcc5.3.1虽然不知道不更改会出现什么情况,但为了保险起见,还是更改吧,出了问题太不容易处理了。

更改过程:

下载和解压压缩包,找不到gcc5.3.1用的gcc5.3.0

wget

http://mirrors.kernel.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar/gz

tar -zxvf gcc-5.3.0.tar.gz

一、安装依赖库与工具

1。工具安装,需要的工具支持c++98的编译器(g++),make,

perl,解压工具(tar,gzip等),Binutiles

只要确认本机安装有g++, gcc本步可跳过,否则

sudo apt-get install build-essential (此步libc也一并安装了)

2。依赖库,若只安装不修改需要5个依赖库(两类)

一类(gmp,mpc,mpfr),二类(isl,cloog)

操作:(a)查看是否安装了某个库

locate

lib***(库名) 若找到lib***.so说明已经安装

(b) 对于gmp,mpc,mpfr 在gcc的解压目录下运行

sudo ./contrib/download_prerequisites

若下载慢,可以更改脚本中下载地址到其他的gnu镜像

(c)对于isl,cloog,可以自己编译,也可以从源上下载

sudo apt-get install libisl-dev libcloog-isl4

libcloog-isl-dev 具体什么结尾可以双击Tab查看

4。安装其他的库

若希望在64位的系统下能编译32位的程序,需重新安装

sudo apt-get install gcc-multilib g++-multilib

二、配置

1、建立编译目录,用于存放编译时产生的.o文件的目录

mkdir build , cd build

2、配置

在刚建立的临时目录里调用根目录下的configure,并输入参数,各参数的含义如下

--prefix 用于配置make

install后将产生的可执行文件,库文件的根目录,若--prefix=/usr,则gcc,g++存放于/usr/bin中,lib存放于/usr/lib中 默认--prefix=/usr/local

若有多个gcc,通过update-alternative来配置默认使用哪一个

--program-prefix --program-suffix 给编译出来的gcc加上前缀或后缀,如 --program-prefix=my,--program-suffix=-4.8.1,则编译出来的gcc名字为"my-gcc-4.8.1"

--disable-multilib

使编译出来的gcc成为本地编译器,即生产的代码只能保证能在本机默认运行,64位系统默认关闭,所以需要先安装

gcc-multilib

--enable-language 编译出的gcc支持的语音,一般 C,C++

--with-gmp,

--with-mpfr,--with-mpc,--with-isl,--with-cloog,--with-gmp-include,--with-gmp-lib 若上面的库安装了且不在标准的搜索路径,需要手动制定相应路径

--with-XXX=YYY--with-XXX-include=YYY/include

和--with-XXX-lib=YYY/lib

如64位系统,当前gcc安装于/usr/bin

../configure --prefix=/usr/local --disable-multilib

--enable-language=C,C++ 其结果时安装了gcc作为本地编译器,与系统的原gcc共存,支持 C和C++

../configure --prefix=/usr --enable-languages=C,C++

生成32位可执行文件覆盖原来的gcc,支持C,C++

3、检查

打开Makefile

文件同事生成的config.log文件,搜索“error”正常情况下,只会搜到一些条件信息里的error如werror和获取信息时,使用"gcc

-V"但gcc不支持-V之类的错误。

若出现include某个文件不存在需注意。

三、编译

sudo make -j 等待很长时间

没有问题后,可以make check一下

##################################

此时容易出现错误

1. /bin/bash: autogen: 未找到命令

解决方法: sudo apt-get install autogen

2.make[2]: **[check] error 127

解决方法: sudo make check

但是仍然会出现问题,好像也不影响后面的过程

##################################

最后没有问题,执行

sudo make

install [注:gcc不支持make uninstall 覆盖需谨慎,root权限]

四、后继工作

还不是特别懂

有两个版本的gcc,可以通过输入完整的路径来调用 不建议

1、sudo rm /usr/bin/gcc(删除GCC,它只是个到gcc-4.3.2的软链接文件)

sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (建立GCC到gcc-4.1的软链接)

这个时候可以用 gcc

-v 查看当前使用的gcc版本

编译完成后可以运行以下命令修改回来

sudo rm /usr/bin/gcc

sudo ln -s /usr/bin/gcc-4.3 /usr/bin/gcc

2、建议通过update-alternatives 来让系统知道gcc调用哪一个

如设置GCC4.1和GCC4.4的可选项,在终端输入以下命令

sudo update-alternatives --install /usr/bin/g++ g++

/usr/bin/g++-4.4 40

sudo update-alternatives --install /usr/bin/g++ g++

/usr/bin/g++-4.1 40

现在设置GCC的默认版本,输入下面命令:

sudo update-alternatives --config g++

得到的结果:

There are 2choices for the alternative gcc (providing

/usr/bin/g++)。

Selection Path Priority Status

*0 /usr/bin/g++-4.4 40 auto mode

1 /usr/bin/g++-4.1 30 manual mode

2 /usr/bin/g++-4.4 40 manual mode

然后输入“1”,再查看一下g++的版本,已经变成4.1的了。

五、总结

sudo apt-get install gcc g++ make libc6-dev sudo apt-get

build-essential 根据自己系统的具体情况选择安装

sudo apt-get install libisl-dev

libcloog-isl4 libcloog-isl-dev

若希望64位系统能编译32位代码需要安装下面的

sudo apt-get install gcc-multilib g++-multilib

下载依赖库(gmp,mpc,mpfr)

sudo ./contrib/download_prerequisites 有时下载很慢,可以从网上搜索安装包,下载,按照脚本中的代码来安装

sudo mkdir build

cd build

../configure --prefix=/usr/ --enable-languages=C,C++

生成32位可执行文件覆盖原来的gcc,支持C,C++

sudo make -j4

sudo make install

经验:

在下载安装配置依赖库后最好设置共享库

方法:sudo updatedb

locate

libgmp.so等,看其所在路径,若不在/lib或/usr/lib下,修改/etc/ld.so.conf文件将上述路径加入此文件

然后运行: sudo ldconfig

库路径的设置,修改/etc/profile或~/.bashrc文件

将gcc的安装路径/usr/bin加入搜索路径,将/usr/lib加入库路径,当然,具体路径与安装时的选项有关

linux gcc版本的选择,linux下gcc版本更改相关推荐

  1. 如何判断 IE 的真正版本(非兼容模式下的版本,IE8+)

    有以下三种行为: 1. 使用真正的 IE8  打开画面A 2. 使用 IE10 打开一个画面A 3. 使用IE10,但是设定使用 IE8 兼容模式来打开画面A 对于以上三种行为,请考虑以下两个问题: ...

  2. python版本切换_Ubuntu18.04下python版本完美切换的解决方法

    ubuntu18.04版本,python版本python2.7,python3.5,python3.6 因为安装一些库会安装到python3.6上,而默认使用的是python2.7,使用python3 ...

  3. linux上网的解决方案-Dr.comlinux下的客户端使用指南

    这篇文章我贴了好多地方了,呵呵,希望新学期开学大家能上网了~ 用windows的也建议换成这个开源版本的for windows版,不会默认弹出学校的首页,并且支持共享上网` 如果你只是挂qq,上上网的 ...

  4. 什么是Linux发行版?常见Linux发行版本有哪些?

    文章目录 1) Red Hat Linux 2) Ubuntu Linux 3) SuSE Linux 4)Arch 5)Mint Linux 发行版本的选择 从技术上来说,李纳斯•托瓦兹开发的 Li ...

  5. linux下gcc版本切换

    今天在linux环境下编译c文件的时候发现库函数居然找不到路径,查了好久都没有找到是什么问题,最后想到的解决办法:把gcc版本切回到linux自带版本 1.查看linux下已安装gcc版本 ls /u ...

  6. linux查看linux版本,内核版本,系统位数,gcc版本,Ubuntu下查看linux版本,内核版本,系统位数,gcc版本...

    转自:http://www.cnblogs.com/nucdy/p/5447722.html 1. 查看linux版本 sunny@ubuntu:~$cat /etc/issue Ubuntu 11. ...

  7. Linux下 gcc/g++ 版本切换与CMake各版本安装

    一. gcc/g++ 版本切换 首先下载需要的版本(以gcc8为例) sudo apt-get install gcc-8 删除原有的gcc链接, 改为新链接 cd /usr/bin sudo rm ...

  8. linux下gcc、g++不同版本的安装和切换

    Ubuntu 18.04预装GCC版本为7.3,但有时在编译是需要用的不同gcc版本,下面介绍,如何安装不同的gcc 和g++,并设置根据不同的需要在不同版本之间切换. 1. 可以通过如下命令查看当前 ...

  9. 【Linux基础】CentOS 7环境下安装高版本GCC (gcc/g++ 9.3)

    CentOS 7升级GCC 正文开始@Assassin 目录: CentOS 7升级GCC 基本执行步骤: 1. 切换用户: 2. 安装centos-release-scl: 3. 安装devtool ...

最新文章

  1. 软件工程实践2017 个人技术博客
  2. Tensorflow警告:our CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
  3. 首发:适合初学者入门人工智能的路线及资料下载
  4. 【原创】大叔经验分享(25)hive通过外部表读写hbase数据
  5. 排列、组合问题(递归)
  6. C# 托管资源和非托管资源(Dispose、析构函数)
  7. Mybatis主线流程源码解析
  8. S5PV210 Uboot开发与移植03:Uboot启动流程详解
  9. 用mysql制作一个登录_连接数据库制作一个简单的登入页面1
  10. nfc卡模式与标准模式_马苏开启年后减肥模式,素颜自拍打卡,皮肤光滑香汗淋漓惹人注目...
  11. JS:如何正确绘制文字
  12. 智慧城市——智慧社区解决方案
  13. 计算机怎么设置桌面密码忘了,win7忘记开机密码怎么办?[多图]
  14. 计算机病毒结构及技术分析
  15. iPhone像素点和常用控件尺寸
  16. FXCM福汇官网 fx-aisa.com外汇交易中,你必须了解的八种主流货币知识
  17. Android 9.0 设置讯飞语音引擎为默认tts语音播报引擎
  18. c语言中:=和==的区别是什么?
  19. 搭建清晰的前端技术体系
  20. DevEco Studio使用技巧

热门文章

  1. 大前端知识点和商业应用总结
  2. [Python3] Matplotlib —— (六) 频次直方图、数据区间划分和分布密度
  3. 手机备忘录怎么将图片转文字
  4. 小偏方!不看,走宝.
  5. 如何用C语言写出一个微信群聊机器人
  6. 关于简单的.bat文件蓝屏代码制作
  7. 【类脑实验】`Hopfield` 模型的实现
  8. AcWing仓库选址
  9. 人工智能时代,如何避免沦为机器附庸?
  10. 水文频率适线法的绘制及参数确定