参考链接:
ubuntu安装g+±5和gcc-5并实现多版本g++和gcc之间的管理和切换教程
背景
因为需要在Ubuntu22.04系统上编译C/C++项目,使用apt安装的g++版本为g++11,而项目需要使用g++5编译,于是:
sudo apt install g++-5
报错:找不到g++ -5。
上网查资料,找到了ubuntu安装g+±5和gcc-5并实现多版本g++和gcc之间的管理和切换教程这篇博客,按照博客的内容安装成功,现将安装过程记录如下,以备查阅。
安装步骤
安装依赖
sudo apt install ncurses-dev
sudo apt install bison
sudo apt install flex
sudo apt install build-essential
还有一个依赖项libisl15需要安装,使用apt install libisl15无法安装,使用dpkg安装:
wget http://archive.ubuntu.com/ubuntu/pool/universe/i/isl-0.18/libisl15_0.18-4_amd64.deb
sudo dpkg -i libisl15_0.18-4_amd64.deb
安装gcc-5和g++ -5
各版本的gcc和g++安装包的下载地址:http://archive.ubuntu.com/ubuntu/pool/universe/g/
点击“gcc-5”:
需要下载如下8个deb文件:
创建一个文件夹g++ -5用于存放这8个deb文件,wget下载这8个deb文件,然后用dpkg安装:
mkdir -p g++-5
cd g++-5
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-5/cpp-5_5.5.0-12ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-5/g++-5_5.5.0-12ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-5/gcc-5_5.5.0-12ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-5/gcc-5-base_5.5.0-12ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-5/libasan2_5.5.0-12ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-5/libgcc-5-dev_5.5.0-12ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-5/libmpx0_5.5.0-12ubuntu1_amd64.deb
wget http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-5/libstdc++-5-dev_5.5.0-12ubuntu1_amd64.deb
sudo dpkg -i *.deb
gcc版本管理
使用命令ls -l /usr/bin/gcc*
可以查看已安装的gcc版本:
可以看到我这里现在有5和11这两个版本的gcc。其中绿色标注gcc-5是新生成的,说明前面的安装成功了。接下来,我们使用update-alternatives来管理gcc版本,要查看update-alternatives的命令帮助,可以输入:
update-alternatives --help
使用如下命令为刚安装好的gcc 5增加可选项(此处应根据自己新安装的gcc版本来进行操作,最后的30表示优先级,数字越大优先级越高,随便设一个就行):
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 30
查看当前gcc版本:
# gcc --version
gcc (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
g++版本管理
使用命令ls -l /usr/bin/g++*
可以查看已安装的gcc版本:
使用如下命令为刚安装好的g++ 5增加可选项(此处应根据自己新安装的gcc版本来进行操作,最后的30表示优先级,数字越大优先级越高,随便设一个就行):
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 30
查看当前g++版本:
# g++ --version
g++ (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.