QT学习笔记(二):QT MinGW 和 MSVC 编译方式
Qt 中有两种方式编译:一种是MinGW ,另一种MSVC,是使用两种不同的编译器。
1、MSVC是指微软的VC编译器;
2、MingGW是指是Minimalist GNU on Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你 在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方运行时库。
3、Qt Creator 版本问题:MSVC和MinGW版本的区别。msvc版本使用的是VS的编译器,这个版本主要用于PC开发;MinGW版本使用MinGW编译器,主要用于跨平台开发。两个版本的Qt配置方式完全不同。因此在网上搜配置方法时候,要加上MSVC或者MinGW这样的关键字一块搜索。网上大部分内容是关于MinGW版本的配置方法,我本地使用的是MSVC版本。MSVC版本配置比较简单;MinGW版本需要下载cmake自行编译opencv。
4、两者是很好用的编译工具,但是他们兼容的并不好。当你的项目使用MinGW编译的使用,想要用一个MSVC编译生成的库时就会有问题。使用MinGW编译项目的时候,所使用的Lib也要是MinGW编译的。如果你只是开发Window平台的软件时,最好用Qt MSVC组合,这样可以使用大量的第三方lib,还有很多的构建指令,毕竟window上MSVC才是王道。
5、编码的问题,QT5的Qstring默认是UTF8格式,QT5极力推介把源码用UTF8格式存储。 但是MSVC只支持带BOM的UTF8格式,qmake不支持带BOM的UTF8格式,逼我只能用GBK么。这样的话,用qt5,每次都要Qstring::fromLocal8bit(“我是中国人”);况且就算BOM问题解决了,源代码是UTF8了。MSVC的执行编码也是GBK。这个问题这里有一些探讨。