linux gcc版本的选择,linux下gcc版本更改
/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版本更改相关推荐
- 如何判断 IE 的真正版本(非兼容模式下的版本,IE8+)
有以下三种行为: 1. 使用真正的 IE8 打开画面A 2. 使用 IE10 打开一个画面A 3. 使用IE10,但是设定使用 IE8 兼容模式来打开画面A 对于以上三种行为,请考虑以下两个问题: ...
- python版本切换_Ubuntu18.04下python版本完美切换的解决方法
ubuntu18.04版本,python版本python2.7,python3.5,python3.6 因为安装一些库会安装到python3.6上,而默认使用的是python2.7,使用python3 ...
- linux上网的解决方案-Dr.comlinux下的客户端使用指南
这篇文章我贴了好多地方了,呵呵,希望新学期开学大家能上网了~ 用windows的也建议换成这个开源版本的for windows版,不会默认弹出学校的首页,并且支持共享上网` 如果你只是挂qq,上上网的 ...
- 什么是Linux发行版?常见Linux发行版本有哪些?
文章目录 1) Red Hat Linux 2) Ubuntu Linux 3) SuSE Linux 4)Arch 5)Mint Linux 发行版本的选择 从技术上来说,李纳斯•托瓦兹开发的 Li ...
- linux下gcc版本切换
今天在linux环境下编译c文件的时候发现库函数居然找不到路径,查了好久都没有找到是什么问题,最后想到的解决办法:把gcc版本切回到linux自带版本 1.查看linux下已安装gcc版本 ls /u ...
- linux查看linux版本,内核版本,系统位数,gcc版本,Ubuntu下查看linux版本,内核版本,系统位数,gcc版本...
转自:http://www.cnblogs.com/nucdy/p/5447722.html 1. 查看linux版本 sunny@ubuntu:~$cat /etc/issue Ubuntu 11. ...
- Linux下 gcc/g++ 版本切换与CMake各版本安装
一. gcc/g++ 版本切换 首先下载需要的版本(以gcc8为例) sudo apt-get install gcc-8 删除原有的gcc链接, 改为新链接 cd /usr/bin sudo rm ...
- linux下gcc、g++不同版本的安装和切换
Ubuntu 18.04预装GCC版本为7.3,但有时在编译是需要用的不同gcc版本,下面介绍,如何安装不同的gcc 和g++,并设置根据不同的需要在不同版本之间切换. 1. 可以通过如下命令查看当前 ...
- 【Linux基础】CentOS 7环境下安装高版本GCC (gcc/g++ 9.3)
CentOS 7升级GCC 正文开始@Assassin 目录: CentOS 7升级GCC 基本执行步骤: 1. 切换用户: 2. 安装centos-release-scl: 3. 安装devtool ...
最新文章
- 软件工程实践2017 个人技术博客
- Tensorflow警告:our CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
- 首发:适合初学者入门人工智能的路线及资料下载
- 【原创】大叔经验分享(25)hive通过外部表读写hbase数据
- 排列、组合问题(递归)
- C# 托管资源和非托管资源(Dispose、析构函数)
- Mybatis主线流程源码解析
- S5PV210 Uboot开发与移植03:Uboot启动流程详解
- 用mysql制作一个登录_连接数据库制作一个简单的登入页面1
- nfc卡模式与标准模式_马苏开启年后减肥模式,素颜自拍打卡,皮肤光滑香汗淋漓惹人注目...
- JS:如何正确绘制文字
- 智慧城市——智慧社区解决方案
- 计算机怎么设置桌面密码忘了,win7忘记开机密码怎么办?[多图]
- 计算机病毒结构及技术分析
- iPhone像素点和常用控件尺寸
- FXCM福汇官网 fx-aisa.com外汇交易中,你必须了解的八种主流货币知识
- Android 9.0 设置讯飞语音引擎为默认tts语音播报引擎
- c语言中:=和==的区别是什么?
- 搭建清晰的前端技术体系
- DevEco Studio使用技巧