当我们的系统里面会有2个以上版本的gcc时,系统会缺省的默认一个gcc版本,当然我们可以更改系统的默认配置,来降低gcc、g++的版本以满足不同的需求。

1.查看GCC的版本信息

$ls /usr/bin/gcc*

$/usr/bin/gcc  /usr/bin/gcc-4.1  /usr/bin/gcc-4.4  /usr/bin/gccbug-4.1

可以看到,已经有了2个版本的gcc,安装成功。

2.增加gcc 4.1.2和gcc 4.4.1可选项

$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40

update-alternatives: 使用 /usr/bin/gcc-4.1 来提供 /usr/bin/gcc (gcc),于 自动模式中

$sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 30

update-alternatives: 使用 /usr/bin/gcc-4.4 来提供 /usr/bin/gcc (gcc),于 自动模式中

3.设置默认编译器,如下:

$sudo update-alternatives --config gcc

有 2 个选项可用于替换项 gcc (提供 /usr/bin/gcc)

  1. $

  2. 选择       路径            优先级  状态

  3. ------------------------------------------------------------

  4. * 0            /usr/bin/gcc-4.4   40        自动模式

  5. 1            /usr/bin/gcc-4.1   30        手动模式

  6. 2            /usr/bin/gcc-4.4   40        手动模式

  7. 要维持当前值[*]请按回车键,或者键入选择的编号:

键入你需要的版本代号,按回车即可

这时为了保险起见,用命令查询当前gcc版本号

$gcc -v

这样就完成了安装和默认项配置,于是可以默认使用GCC 4.1.2编译程序了,其它版本的类似……

同样也要设置一下g++的

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

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

如果想删除可选项的话可以键入以下指令:

sudo update-alternatives --remove gcc /usr/bin/gcc-4.5

再用gcc -v 来看一下版本是否改变了。

如果我们想使用gcc4.5怎么办?首先看看有没有安装gcc4.5,

ls /usr/bin/gcc*

结果只有/usr/bin/gcc  /usr/bin/gcc-4.4两个,那么我们需要安装

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

安装好后输入以下指令:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 50

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 40

手动替换GCC版本的更多相关文章

  1. CentOS 7升级gcc版本

    Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至8.3.1版本为例,分别执行下面三条命令即可,无需手动下载源码编译 1.安装centos-release-scl sudo yu ...

  2. Linux(CentOS)升级gcc版本

    本人使用的是CentOS 6.2 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 系统信息查看命令: cat /etc/redhat-release 使用y ...

  3. Ubuntu下两个gcc版本切换

    Ubuntu系统使用的gcc版本随着发布版本的不同而不同,在编译Android系统时不同的版本推荐用不同的gcc去编译,那么可不可以改变系统的gcc来适应android编译环境的需求呢?答案是可以的. ...

  4. CentOS 6.5(64bit)安装GCC4.8.2+Qt5.2.1(替换GCC的链接库)

    截至目前,Qt的最新版本为5.2.1,CentOS的版本为6.5,GCC的版本为4.8.2,经过一番尝试,终于将Qt开发环境安装到了CentOS(64 bit)中,整个过程中有几个需要注意的地方,在这 ...

  5. 利用yum升级Centos6的gcc版本,使其支持C++11

    下面的可以在centos6下工作,centos7下有问题.可能是因为centos下的scl我是拷贝的文件,没有完全验证centos6下肯定没问题. https://my.oschina.net/u/5 ...

  6. Ubuntu / Raspberry 下切换GCC版本

    目前Ubuntu 自带的GCC版本为4.6,遗憾的是在实际使用时,反而版本越高越好问题越多,所以,一旦遇到编译问题时最好先检查你下载的工程里的readme,默认的编译器版本是否为当前的安装版本,如果不 ...

  7. 手动安装GCC

    01sunxiaoqiang的博客 Centos离线手动安装gcc.g++教程 转载 2016-11-06 17:35:18 标签:linux应用笔记 在安装LINUX系统的时候很可能会没有安装gcc ...

  8. 把ubuntu自带的高gcc版本降到低版本(如gcc 3.4)的方法

    转载自: 博客1.博客2 .博客3 步骤 第一步: 下载所需gcc安装包(.deb格式) 手动:老版本gcc下载地址:http://old-releases.ubuntu.com/ubuntu/poo ...

  9. ubuntu17.10安装lnmp安装包的核心问题-gcc版本、g++版本

    大致碰到的问题都是这样,不是php安装失败,就是MySQL安装失败,或者Nginx也安装失败 基本上是花式报错.后来在军哥的论坛中找到了这个帖子:https://bbs.vpser.net/viewt ...

随机推荐

  1. crossdomain.xml跨越

    crossdomain.xml是adobe搞的,为了让flash跨域访问文件. 该配置文件放于服务器端的根目录下面.来设置让哪些域名下面的swf文件能够访问我服务器上的内容. 比如:我的服务器上有个图 ...

  2. HDU_2017——统计数字字符出现的个数

    Problem Description 对于给定的一个字符串,统计其中数字字符出现的次数.   Input 输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数 ...

  3. enable ide

    http://pve.proxmox.com/wiki/Migration_of_servers_to_Proxmox_VE The vmware system consists of two dis ...

  4. js 等待刷新技术

  5. using namespace cocos2d;

    忘记在头文件添加using namespace cocos2d; 导致一直出现问题,定义的精灵却一直报错. error C2143: 语法错误 : 缺少“;”(在“*”的前面)

  6. HDU4612(Warm up)2013多校2-图的边双连通问题(Tarjan算法+树形DP)

    /** 题目大意: 给你一个无向连通图,问加上一条边后得到的图的最少的割边数; 算法思想: 图的边双连通Tarjan算法+树形DP; 即通过Tarjan算法对边双连通缩图,构成一棵树,然后用树形DP求 ...

  7. Word03-文档中的截图显示不全

    今天写文档时遇到个很蛋疼的问题,在doc文档中复制进去的截图总是显示不全,图片上半部分都被文字遮盖了,折腾半天,最后还是网上找到了答案. 解决方法如下: 将图片所在行的段落行距修改为其它值即可,原来为 ...

  8. LINUX增加并管理用户

    使用groupadd命令增加新的用户组 使用useradd命令增加新用户: useradd -s /bin/bash -d /home/XXX -g group username 使用passwd修改 ...

  9. Catel帮助手册-Catel.Core(6):日志管理

    1,简介      从2.2版本开始,Catel使用了一个自定义的日志系统,这种方式,针对log4net的引用可以被移除,做这个修改主要是为了不强迫用户使用log4net,同时,log4net看起来很 ...

  10. Swift - 43 - 继承, 多态, 析构函数

    import Foundation /* 什么叫继承: 可以简单理解为一个类可以从它的父类或者基类中直接拿属性或者方法去使用 冒号":"表示两者之间的继承关系 */ class P ...