问题背景
在 Ubuntu 22.04 中安装 VMware 虚拟机时,提示缺少 VMMON 和 VMNET 模块
编译这两个模块需要 GCC 的版本大于 12.3.0,而 Ubuntu 22.04 自带的 GCC 版本为 11.4.0
因此需要安装对应的 GCC 版本,但为了不影响其他程序,需要同时保留这两个版本的 GCC
解决方法
① 使用命令 gcc -v 查看本机的 GCC 版本:
可以看到当前系统的 GCC 版本为 11.4.0
② 使用以下命令安装 GCC 12 和 G++ 12:
sudo apt install gcc-12 g++-12
命令执行结果如下:
通过命令 gcc-12 -v 检查是否安装成功:
③ 为每个版本的 GCC 设置优先级:
将 GCC 12 的优先级设置为 100:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100 --slave /usr/bin/g++ g++ /usr/bin/g++-12 --slave /usr/bin/gcov gcov /usr/bin/gcov-12
将 GCC 11 的优先级设置为 80:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 80 --slave /usr/bin/g++ g++ /usr/bin/g++-11 --slave /usr/bin/gcov gcov /usr/bin/gcov-11
配置完成后,由于 GCC 12 的优先级高于 GCC 11 的优先级,因此系统会切换为 GCC 12:
④ 切换不同版本的 GCC:
sudo update-alternatives --config gcc
输入对应的编号即可切换对应版本的 GCC,例如,输入 1 即可切换为 GCC 11:
在版本选择界面直接按回车会选择默认版本的 GCC 12