背景

我现在用的电脑是ubuntu22,自带的gcc是11。但是因为要验证一些低版本的glibc特性,需要用到低版本的glibc库。问题就在这,高版本的gcc编译的二进制文件在链接低版本glibc时会报错,不得已,去尝试更换本机的glibc。但是原则上,是不能降低gcc版本的,只能增加一个低版本gcc,查了查资料,有了这个。

添加镜像源并更新

1
2
3
sudo vim /etc/apt/sources.list
deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe
sudo apt-get update

这里我也有个小小的疑问,似乎想要下载不同版本gcc的时候,其源是不同的(难道不应该是同一个版本源码?)

安装指定版本

1
sudo apt-get -y install gcc-7 g++-7

配置gcc版本的优先级

指定默认gcc版本用,数字越大,优先级越高,这里是50,最大测试100也是没为题的(再多就不知道了)

1
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50

切换需要的gcc版本

1
sudo update-alternatives --config gcc

切换完成后,查看gcc版本验证。

需要注意

  1. 在大部分的编译任务中,gcc和g++是配合使用的(尤其是大型的编译任务)。除非你确定知道自己的需求,否则最好在切换默认编译器的时候,同时讲gcc和g++切换。我也非常建议这样做(前面的操作,我只做了gcc的示例,将gcc换成g++即可)

  2. 如果你想再多添加几个不同版本的gcc,也是可以的。

  3. 需要删除的话

    1
    sudo update-alternatives --remove gcc /usr/bin/gcc-7

    但是墙裂建议在你没谱的情况下,别随便删。

参考

https://blog.csdn.net/weixin_43279138/article/details/126728005

https://www.cnblogs.com/zengkefu/p/7103359.html

https://blog.csdn.net/xrinosvip/article/details/81177873

https://blog.csdn.net/qq_39779233/article/details/105124478

https://blog.csdn.net/haibosdu/article/details/77094833

https://blog.csdn.net/astrotycoon/article/details/8069621

2022-12-05

⬆︎TOP