• Ubuntu18.04 下安装多个gcc g++ c++版本


    转载https://www.jianshu.com/p/f66eed3a3a25

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

    1. 可以通过如下命令查看当前安装的版本:

    ll /usr/bin/gcc*

    2. 安装gcc-4.8 和gcc-5:

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

    3. 使用update-alternatives设置gcc和g++:

    update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本。
    其中405070是优先级数值可以自己设定,--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

    4. 使用如下命令选择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).
    
      Selection    Path              Priority   Status
    ------------------------------------------------------------
    * 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
    
    Press <enter> to keep the current choice[*], or type selection number: 1
    update-alternatives: using /usr/bin/gcc-4.8 to provide /usr/bin/gcc (gcc) in manual mode
    

    5. 验证是否修改成功:

    gcc -v
    g++ -v

    6. 删除

    删除某个gcc版本的选项的话,可以使用
    sudo update-alternatives --remove gcc /usr/bin/gcc-4.5
    再使用apt-remove删除即可


    如果没有安装任何编程环境,这个方案值得一试:https://www.sysgeek.cn/ubuntu-install-gcc-compiler/


    作者:foochane
    链接:https://www.jianshu.com/p/f66eed3a3a25
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    学习Karma+Jasmine+istanbul+webpack自动化单元测试
    学习测试框架Mocha
    WebSockets通信
    简单的CSS圆形缩放动画
    css3 实现图片等比例放大与缩小
    CSS3之多列布局columns详解
    scp传输文件的命令
    学习rollup.js模块文件打包
    go语言之进阶篇通过switch实现类型断言
    go语言之进阶篇通过if实现类型断言
  • 原文地址:https://www.cnblogs.com/shixun/p/13291925.html
Copyright © 2020-2023  润新知