Qt构建MSVC2015环境过程

前言

之前用的Qt都是基于默认的MinGW编译器,由于目前工作的QT界面主要是跑在X86上,所以记录一下Qt配置MSVC2015的配置过程。根据查阅了解以后,个人理解的MinGW跟MSVC的区别在于前者主要是用于跨平台程序构建,即他对Linux环境的一些库有着不错的支持,后者更多的应用于Windows环境开发,大多数Windows库都是基于MSVC的,二者的代码无法直接更改编译器切换运行。

前期准备

Qt 5.14.2
VS 2015(安装后勾选添加Visual C++,没有的话参考这里进行重新安装

下载安装Windbg

windbg是微软支持的一个调试器,下载链接
Qt构建MSVC2015环境过程-LMLPHP
下载完成后双击运行即可。
此处只需要勾选下图的选项即可。
Qt构建MSVC2015环境过程-LMLPHP

Qt配置

新建一个应用程序,在编译器选项勾选MSVC2015,新建完成后点击项目->Mange Kits。
在编译器栏下应当看到VS的编译器,根据安装版本存在一定差异,大致命名如下:
Qt构建MSVC2015环境过程-LMLPHP
在构建套件中点击Desktop Qt 5.14.2 MSVC2015 64bit
主要修改下图中的三个选项,将C、C++的编译器切换为VS的,amd64即使用64位机器构建,X86_amd64即使用32位机器构建,Debugger选项在安装完上面的Debugger tools for Windows后就会出现下图中的工具。
Qt构建MSVC2015环境过程-LMLPHP
更改完成后编译环境就搭建完成。

解决报错

在上述环境配置结束后,编译运行默认工程出现如下报错:
Qt构建MSVC2015环境过程-LMLPHP
查看报错大致分为一下两个:
1、qobjectdefs.h文件下的错误
2、QColor::CT::CT没有重载函数接收五个参数
第一个报错解决: 到报错提示的文件下面,将597-598行的代码移至585行即可(原因未查阅)
Qt构建MSVC2015环境过程-LMLPHP
**第二个报错解决:**在项目的pro文件中添加如下定义:

DEFINES += Q_COMPILER_UNIFORM_INIT

重启Qt后运行即可。

01-12 14:25