先说结论
经过楼主的尝试,VS2019在Qt 5.11版本的编译中会存在问题。
对于想使用Qt下: Desktop Qt 5. 11 2 MSVC2017 64bit 的构建套件(kit)的盆友们建议还是下载VS2017最稳最妥,不建议使用VS2019。
如果要尝试可以查看:https://www.zhihu.com/question/358058090 注意:请提前确保 自己的Qt版本中编译器手动添加时可以选择MSVC类型。
工具->选项->编译器->添加->MSVC->C++
为什么楼主要用MSVC2017
楼主在QT代码中做了matlab调用,无奈我安装的matlab是64位的,而Qt自带的编译是32位的存在问题。故没用Qt自带的 Desktop Qt 5.11.2 MinGW 32bit构建套件,而是准备使用Qt 5. 11 2 MSVC2017 64bit 的构建套件。
配置构建套件(kit)
配置构建套件需要选择正确的编译器和调试器,不然会出现红色的感叹号或黄色的感叹号代表报错。
如下图,是楼主配置好之后的构建套件 MinGW 32bit 和MSVC2017 64bit。
VS2019遇到问题的详细说明:
VS2019中虽然可以安装VS2017的相关编译器,然而在Qt中可能自动无法识别,需要手动添加,而我的5.11版本中手动添加没有MSVCl类型的选项。并且识别了VS2017相关编译器(如 Microsoft Visual C++ Compiler 14.0(x86_amd64)),选择放入Qt 的MSVC2017套件中还是无法正常使用。
所以,建议安装下载VS2017。
MSVC2017 64bit套件配置流程:
安装下载VS2017
下载地址:https://visualstudio.microsoft.com/vs/older-downloads/
安装**:勾选 使用工作负载中的C++的桌面开发组件和单个组件中的windows通用CRT SDK。**(不勾其实说不定也可以…)
配置Qt MSVC2017 构建套件(kit)
安装完成后打开QT可以看到编译器中出现了: Microsoft Visual C++ Compiler 15.0 的编译器。注意!MSVC2017对应的是 Microsoft Visual C++ Compiler 15.0的编译器
将15.0编译器 选入 MSVC2017的配置中:
调试器(Debugger)选择使用Windows SDK程序自动生成的调试器。具体操作请查看
同样加入到kit MSVC2017的配置中:
配置成功后,黄色的感叹号会消失,变为一个电脑的图标,此时此套件已经可以正常的用于build文件了。
中文乱码问题
MSVC2017编译过程中会出现 MinGW时不会出现的中文乱码。
第一步:
在有中文的cpp对应的头文件(.h文件)的首行加上一句:
#pragma execution_character_set("utf-8")//中文编码
第二步 :
工具 ->选项 ->文本编辑器 ->行为 ->文件编码 ->UTF-8 BOM:选择 如果文件为UTF-8则添加。
应用后再次编译,问题解决。(这个方法非主流。。。)
ps.
关于 :BOM的解释
当MSVC遇到一个没有BOM的UTF-8编码的文件时,它通常会把文件看作GB2312的来处理。如果文件全是英文没有问题,但如果包含中文,编译器就会出现误读。
参考链接
https://forum.qt.io/topic/107762/pylon-in-qt-compilation-issues
https://blog.csdn.net/Scarlett_OHara/article/details/80690230?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
https://blog.csdn.net/cocoasprite/article/details/53634386