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

Ubuntu 18.04预装GCC版本为7.3,但有时在编译是需要用的不同gcc版本,下面介绍,如何安装不同的gcc 和g++,并设置根据不同的需要在不同版本之间切换。

可以通过如下命令查看当前安装的版本:
ls /usr/bin/gcc*

  • 安装gcc-4.8 和gcc-5:

sudo apt install gcc-4.8 g++ -4.8
sudo apt install gcc-5 g++ -5

  • 使用update-alternatives设置gcc和g++

update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本。
其中40 ,50 ,70是优先级数值可以自己设定,–slave能保证gcc和g++保持相同的版本。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 --slave /usr/bin/g++ g++ /usr/bin/g+±4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50 --slave /usr/bin/g++ g++ /usr/bin/g+±5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 --slave /usr/bin/g++ g++ /usr/bin/g+±7

  • 使用如下命令选择gcc的版本:

sudo update-alternatives --config gcc

可以看到当前gcc默认的版本是gcc-7,下面我们修改为gcc-4.8,直接选择编号即可。

$ sudo update-alternatives --config gcc
There are 3 choices for the alternative gcc (providing /usr/bin/gcc).
* 0 /usr/bin/gcc-7 70 auto mode
1 /usr/bin/gcc-4.8 40 manual mode
2 /usr/bin/gcc-5 50 manual mode
3 /usr/bin/gcc-7 70 manual mode

update-alternatives: using /usr/bin/gcc-4.8 to provide /usr/bin/gcc (gcc) in manual mode

  • 验证是否修改成功:

gcc -v
g++ -v

  • 删除某个gcc版本的选项的话,可以使用

sudo update-alternatives --remove gcc /usr/bin/gcc-4.5
————————————————
版权声明:本文为CSDN博主「lichunhong000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xihuanzhi1854/article/details/90765199

Ubuntu linux下gcc、g++不同版本的安装和切换的更多相关文章

  1. Ubuntu(Linux)下如何用源码文件安装软件

    在Ubuntu中附带了丰富的软件,这些软件一般使用图形化的自动方式(“添加/删除”或“新立得”)即可轻松安装,但是对于那些刚刚问世的新软件,Ubuntu的源中还未收录其中,这时我们就需要用到一种更通用 ...

  2. Linux下gcc/g++中-I(i的大写)、-L和-l

    -I(i的大写)include头文件非标准库中存在的也不是在当前文件夹下的,需要将地址用-i(大写)包含例:-I /home/src/-L用到的函数或操作非标准库下的,需要将库存在的地址用-L包含,库 ...

  3. ubuntu 14.04 gcc/g++版本降低

    Matlab 2014a支持的gcc/g++版本是4.7x,而ubuntu 14.04以及更高版本默认安装的版本都是4.8及以上,因此需要降低gcc/g++版本,方法如下: 1 安装 $ sudo a ...

  4. gcc/g++多版本切换 (ubuntu18.04)

    使用Ubuntu18.04已经有一段时间了,在使用过程中经常需要处理不同软件的编译工作,但是这时候就遇到这样一个问题,那就是不同软件,甚至是同一个软件的不同版本都会使用不同版本的gcc/g++来进行编 ...

  5. Ubuntu\Linux 下编写及调试C\C++

    一.在Ubuntu\Linux 下编写及调试C\C++需要配置基本的环境,即配置gcc编译器.安装vim编译器,具体配置安装步骤我在这里就不多说了. 二.基本环境配置完了我们就可以进入自己的程序编写了 ...

  6. Ubuntu Linux下如何配置Android开发环境

    下载和安装Win7系统Android开发环境中讲了怎样在Win7系统中安装Android开发环境,那么怎样在Linux系统中配置Android开发环境呢?本篇文章就将演示如何使用Eclipse.And ...

  7. 在Ubuntu Linux下怎样安装QQ

    最近好多人在吐槽Linux下上QQ简直就是煎熬,网页版的不方便,网上各种版本的QQ要么是功能不全.要么是界面丑到爆,要么是运行不稳定.那么这次为大家带来一个功能完整.运行稳定的wineQQ安装过程. ...

  8. Ubuntu Linux下安装Oracle JDK

    from://http://blog.csdn.net/gobitan/article/details/24322561 Ubuntu Linux下安装Oracle JDK Dennis Hu 201 ...

  9. ubuntu linux 下wine的使用

    ubuntu linux 下wine的使用 之前写了一篇 ubuntu15.10下编译安装wine1.8rc4 这一篇是来写它的使用的. 1.安装Wine支持包 现在,需要安装非开源(但免费)的支持包 ...

  10. Ubuntu Linux下设置IP的配置命令

    Ubuntu Linux下设置IP的配置命令 今天装了Ubuntu,但是发现不能上网,开始排查问题: 1.首先确定网络连接是否正确,所用的网线是否可以正常工作 2.查看网卡是否能正常工作,检测的方法如 ...

随机推荐

  1. BAPI_GOODSMVT_CREATE - 101 mvt. Message ERROR M7427

    Message SAP M7427 - Entered batch &1 does not match batch &2 in the purchase order 639934 - ...

  2. windows系统修复

    尝试进入安全模式,然后调整相关启动项或卸载有冲突的软件/驱动 尝试进入PE后使用chkdsk命令修复C分区 尝试进入系统后使用sfc /scannow命令检查修复系统

  3. usb 2.0 packet

    注意PID[7:0] = {~pid[3:0], pid[3:0]}

  4. 遍历List时删除元素导致List抛出java.util.ConcurrentModificationException异常

    1 public static void main(String[] args) { 2 List<String> list = new ArrayList<String>() ...

  5. GraalVM, Native Image, Java on Truffle, LLVM runtime, WebAssembly, JavaScript and Node.js关系是什么

    GraalVM, Java on Truffle, LLVM runtime, WebAssembly, JavaScript and Node.js关系是什么 GraalVM是一个JDK发行版,支持 ...

  6. gdb 常用命令总结

    安装插件 1. 安装GDB增强工具 (gef) * wget -q -O- https://github.com/hugsy/gef/raw/master/scripts/gef.sh | sh2. ...

  7. c函数调用过程

    一.内存结构内存大致可以分为四个部分:代码段,静态存储区,堆,栈.具体划分如下图所示: 栈:在执行函数时,函数内部局部变量的存储单元都可以在栈上创建,函数执行结束后会自动释放内存.栈内存的分配运算内置 ...

  8. 1.java 开始

    WelloWorld 随便新建一个文件夹,存放代码 新建一个java文件 编写代码 编译javac java文件,生成一个class文件 运行class文件,java class 可能遇到的情况 每个 ...

  9. 淘淘商城项目技术点-8:vsftpd

    FTP(文件传输协议)全称是:Very Secure FTP Server.   Vsftpd是linux类操作系统上运行的ftp服务器软件. vsftp提供三种登陆方式:1.匿名登录  2.本地用户 ...

  10. nginx配置透明代理

    来自:https://blog.csdn.net/weixin_34072458/article/details/91677177 user nginx; worker_processes auto; ...