引言
对于Qt的两个版本,不是有很多疑问吗? 或者,切换时,有很多奇怪的问题吗? 今天就常见的几个问题进行分析和解决。
个人资料
操作系统: window7 x64
编程IDE:Qt Creator 4.2.1
Qt版本:5.8.0(mingw ) and5.7.1(msvc ) )。
版本介绍
首先,在此之前对版本有必要的理解,对我们以后的操作有帮助。
明格w
MinGW是Minimalist GNUfor Windows的缩写,发音基本上是min (民) GW )字母发音。
它是一个可以自由使用、自由发布的Windows特定头文件和使用GNU工具集导入库的集合,不需要第三方c运行时(C Runtime )库主要包是从Unix-like系统移植的GCC/make
MinGW是一组包含文件和端口的库,允许控制台模式程序使用微软标准的c运行时(C Runtime )库。
MSVC
网上的资料太少,我用自己的话简单介绍他。
1
2
MSVC是Microsoft Visual C的缩写。 使用微软编译器和用于Visual Studio的同一编译器,可以在Window平台上生成本地程序。
结语
简而言之,他们是编译器。 值得我们注意的是,它们之间的差异应该是对字符集的支持。 上述介绍中没有提到,在此补充。
MinGW缺省使用UTF-8作为编码字符集,而MSVC是微软公司的,因此它和VS一样缺省使用GB2312作为编码字符集。
VC只能读取GB2312的源代码。 他在编译时自动将许多其他代码转换成GB2312,例如中文注释。
gcc只能读UTF-8的源代码。
由于编码上的差异,发生了莫名其妙的错误。
版本切换
还没有两种版本的学生可以自己去官网下载[去官网下载]
从MinGW到MSVC
编译器切换时,请注意两个部分。 一个是Qt版本,另一个是编译器高级的Qt Creator,他们把他分开了,我们在选择的时候,要有效地统一对待他们。
结语
在window中,很多人使用的MSVC作为主要编译器,人们必须呆在屋檐下,低头。 但是,Qt5以后,Qt统一使用utf-8作为标准字符集,优劣显而易见。
使用MSVC作为长期使用的编译器版本时,请进行以下更改。
打开文件编码,将GB2312作为缺省字符集。
如何:工具(alt ) -选定(o ) -文本编辑器) -行为(文件代码(右侧中间) ) )
将QStringLiteral添加到显式字符串常量中
其实这也可以说是个好习惯。 qstringmyname=qstring literal (' OE );
1
切换错误
相信在上述顺利的版本切换中,同学们还会遇到很多错误的问题,在此我做个简单的拾遗。
错误类型
打个号码
代码
编译
错误
解决提示
1
代码对
已编译
程序异常结束(启动时) )
检查编译器的和Qt版本是否兼容,然后重建项目(清理moc qrc等文件) )。
2
代码对
即使编译
未声明变量等令人费解的错误
检查代码的字符集
3
不知道正确性
编译失败
%^*! () $^@
这样的世纪难题,很难打倒我。 这个问题暂且搁置,希望有人能为此写下爱情的篇章。
详细介绍
第一个
这里发生的程序异常结束,90%起因于编译器的问题。
在调整编译器和Qt版本后,请记住要组织原始项目生成的文件,如. o moc。
请记住,Qt Creator和其他IDE具有针对编译进行优化的功能,因此要进行清理并重新编译。
第二种
MinGW使用utf-8方法编译源代码,但在编译过程中,某些代码文件是gb2312编码或其他编码。 我们的代码要是英语就好了,但是因为使用了中文注释和英语源代码进行了交叉编译,字符集混乱,把编译器当成了傻瓜。 MinGW用自己的方式一边读一边编译时,如果发现很难读,他就会报告错误给大家看。
宝宝生气了。 是的,我说utf-8。 请读gb2312。 婴儿不能理解。 但是,请假装宝宝很理解,报告其他错误。 我很生气。 @_@!
第三个
导演,我在这里度过!
使用编辑
在此,您可能要使用文本编辑器的EditPlus[一键下载]
这里主要是批量转换文本文件,但是逐个转换很麻烦,所以使用EditPlus进行必要的操作。
找到要修改的文件
填写检索规则
在此处填写*搜索当前文件夹下的所有文件
打开所有搜索到的文件
批量编码转换
选择要转换的文件
选择对应的转换后编码
保存文件
结语
从那以后,文件的批量转码操作结束了,我们也不用特意学习,平时使用的时候,看了很多遍教程自然就有了余地。
结语
如果有需要补充的地方,我希望朋友们通过短信谈谈问题的再现方法,我在本机上分析解决后在本章中进行补充。