Ubuntu 安装不同版本的 gcc/g++ 编译器 - yhjoker

时间:2024-03-05 21:34:01

Ubuntu 安装不同版本的 gcc/g++ 编译器

  主要内容原载自笔者的另一篇博客Ubuntu18.04 使用过程遇到的问题记录。这里单独拿出来便于查阅。

  在使用 Matlab R2018b 时,发现其支持的 g++ 版本为 g++ 6.3.0 ,而在 Ubuntu 发行版上,g++ 版本一般随系统升级(有些 distribution 上默认不包含编译环境),所以无法满足上述需求。这里记录下 Ubuntu 环境安装不同版本的 g++ 编译器。

  (1) 首先通过 g++ --version 查看当前系统的 g++ 版本;

    g++ --version        //查看当前 g++ 版本

  可以看到当前的 g++ 版本为 7.3.0.

  

 

  (2) 通过 apt 命令查看当前可通过 apt 安装的 g++ 的版本( 显示的信息依赖于上一次进行 apt-get update 的缓存信息)

    sudo apt-cache search g++ | grep g++        //查看当前与 g++ 相关的包,并筛选其中包含有 g++ 的行

  通过上述命令看到目前可使用 apt 命令安装的 g++ 版本的情况,包括对应不同版本,不同架构的编译器,以及对应的库的支持,一般而言,安装某版本的 g++ 只需要选择对应的 g++-n 和 g++-6-multilib 即可。

  

 

  (3) 通过 apt 安装对应所需要的 g++ 版本和库。但是这里注意,使用 apt 安装的 g++ 编译器和相关库的版本只能选择大的版本号如 6 ,而无法指定具体的小版本号 6.3.0,如笔者安装的 g++-6 的版本实际为 g++-6.4.0.

    sudo apt install g++-n g++-n-multilib        //安装对应的 g++ 编译器和库

  

  (4) 通过命令切换不同的 g++ 编译器版本。

  通过 update-alternative 为不同版本的编译器创建链接

    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 40    //创建 g++-6 的链接,并指定了优先级 40
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 60    //创建 g++-7 的链接,并指定了优先级 60

  优先级用于在系统进行自动选择时确定使用的软件版本,在自动模式下,总是使用优先级高的版本。

    sudo update-alternatives --config g++        //手动选择所需的软件版本

 

  输入上述命令后,直接通过数字索引选择所需的 g++ 版本即可。

  

  上述配置过程除可以用于不同版本的编译器的设置外,还可以用于设置具有相似功能的不同软件的替换和切换,更多原理的介绍可以参考 update-alternatives 命令的帮助文档 man update-alternatives。