ubuntu 16.04 安装多个gcc版本
1.背景
由于我们软件开发时,通常在ubuntu16.04系统中运行,而ubuntu16.04 中系统自带的gcc版本为5.4.
ubuntu16.04 从2016年发布以来,就实验性的支持了c++17的部分功能,所以我们的工程中也部分的使用了c++17的功能。
最近,在windows上使用msvc写了一部分代码,在与linux版本合并的时候,出现很多编译错误,才来了解gcc对c++17的支持情况
gcc 5,部分的,实验性的支持了c++17的语法
gcc 7, 在语法层面,完整的兼容了c++17标准
gcc 9, c++17 ABI层面完整的兼容(意味着可以安全的交叉编译)
信息来源
考虑到ubuntu16已经于2021年结束标准支持,2026年将结束生命周期,以及使用更多的c++17的特性
我决定在我的开发环境安装多个gcc版本,踩一下升级gcc坑,
先设定一个小目标:安装可以在gcc 5 和gcc7之间来回切换的开发环境
2.升级之前
备份虚拟机环境 ,基操
3. 升级
我们主要通过build-essential
这个基础设施来 安装,管理 gcc , 所以首先安装它
1
|
sudo apt install build-essential
|
下面三个镜像任选一个
1
2
3
4
5
6
|
#清华
sudo sed -i 's/http:\/\/archive.ubuntu.com\/ubuntu\//http:\/\/mirrors.tuna.tsinghua.edu.cn\/ubuntu\//g' /etc/apt/sources.list
#阿里云
sudo sed -i 's/http:\/\/archive.ubuntu.com\/ubuntu\//http:\/\/mirrors.aliyun.com\/ubuntu\//g' /etc/apt/sources.list
#华为云
sudo sed -i 's/http:\/\/archive.ubuntu.com\/ubuntu\//https:\/\/mirrors.huaweicloud.com\/ubuntu\//g' /etc/apt/sources.list
|
安装gcc版本
1
|
sudo apt -y install gcc-5 g++-5 gcc-7 g++-7
|
1
2
3
4
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 5
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 7
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 7
|
配置gcc版本
1
|
/etc/apt$ sudo update-alternatives --config gcc
|
按2再按回车就会切换到gcc7
1
2
3
4
5
6
7
8
9
10
|
deepvision@sw-008:/etc/apt$ sudo update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/gcc-7 7 auto mode
* 1 /usr/bin/gcc-5 5 manual mode
2 /usr/bin/gcc-7 7 manual mode
Press <enter> to keep the current choice[*], or type selection number:
|
可以打印出版本来看是否切换成功
1
2
|
gcc --version
g++ --version
|
end
>> Home
Comments