cenos7升级gcc 9.3和Qt5.15版本教程
文章目录
- cenos7升级gcc 9.3和Qt5.15版本教程
- 0、背景
- 1、现状
- 2、目标和思路
- 3、升级前环境准备
- 3.1 虚拟机联网配置
- 3.2 镜像设置
- 4、升级gcc 9.3
- 5 升级Qt
- 6 测试验证
- 7 总结
0、背景
之前编码的环境一直是“拿来主义”,拷贝现成的虚拟机对自己的代码进行编译生成发布件。由于我自身编码习惯可能会用到一些诸如C++11、14的特性,导致部分新特性在当前编译环境中没法使用。就会导致我本地编码在windows上编译、运行都是ok的,但是需要生成x86版本的时候编译失败。
于是乎,我就在思考如何改变我当前的编译环境,如何让我后面写代码更加高效(而不是每次针对linux还需要对新特性代码进行“回退”处理)。
1、现状
当前我得linux机器环境如下:
- 操作系统:centos 7
- gcc:4.8.5(centos 7系统标配)
- qmake:3.1
上网查了一些信息,基本上跟当前系统配置的一致,都是一些默认安装的配置,而且按照网络上推荐的,当前centos 7建议最高更新Qt到5.15版本。这一点我是比较认可的,因为我从官网上选了个最新版本,本地解压然后安装结果失败了。原因就是底层编译器不兼容。
大家有时间感兴趣也可以自行尝试,比较耗时间,建议有空再尝试,附上当前Qt链接。
2、目标和思路
讲完了自身需求和当前系统配置现状,那么我当前的需求就非常明晰了:升级gcc版本来支持高版本C++,同时适配升级对应Qt版本。针对自身需求制定目标如下:
- gcc升级到高版本来支持至少C++14,最好是能到C++17,暂定先升级到gcc 9.3;
- Qt版本升级,按照网上推荐版本,升级到5.15版本;
- 本地测试编译项目代码,能够成功使用C++新特性并生成对应的发布件;
3、升级前环境准备
3.1 虚拟机联网配置
首先,虚拟机得能连接外网,可以通过下面的命令进行测试:
ping www.baidu.com
在其他博客中已经有详细介绍,结合食用效果更佳哦:
Ubuntu16机器ping不通主机ip
CentOS 7无法上网问题解决
3.2 镜像设置
直接通过原生镜像下载最新的gcc版本,例如先更新第三方仓库:
sudo yum install centos-release-scl
此时可能会执行失败,原因是原生官方镜像连接失败,可以通过下面的命令进行测试:
ping mirrors.aliyun.com
ping不通说明网络不可达,当然也可以检查下是不是防火墙拦住了:
systemctl status firewalld
这个时候我们需要用国内的一些镜像进行资源下载,用的比较多的是阿里云镜像,先对原有源配置备份:
sudo mv /etc/yum.repos.d/CentOS-Base