Qt5遇到的问题

时间:2024-10-12 10:35:43

好久没用Qt了,今天又重新安装了一个,结果遇到不少问题

本机环境:VS2015,Qt5.7

装好后,就新建工程测试了一下,结果无法编译,提示

:-1: error: cannot open C:\Users\我的用户名,中文的\AppData\Local\Temp\main.obj.7148.0.jom for write

这一看又是中文路径的问题啊,但是,系统路径,不好改啊,jom是个什么东西?网上搜了一下,得到解决方法:

工具->选项->构建和运行:概要, 取消 <使用jom代替nmake>前的勾.再次编译,行了.

但是无法调试,说没配置调试器,继续搜索,微软官方下载Debugging Tools for Windows

官网提示三种方式:

第一种是安装WDK,里面自带.

第二种是安装SDK,里面自带.

第三种是在安装SDK时只选择安装Debugging Tools for Windows

好吧,第三种比较好,安装完毕,在<构建和运行>里设置一下,试一下,能用!

然后吧,中文乱码的问题!

Qt工程没有乱码,只要文件编码是utf-8.但是控制台工程会乱码,把文件编码改成gbk,不乱码了,但是Qt乱码了.

以前的解决方案是:文件编码用GBK,QT工程里添加设置编码的代码(网上搜到的那几句)

但是现在不想那么做,因为不想添加代码,同时要用UTF-8编码,所以要解决一下控制台程序乱码的问题.

网上搜索有没有设置编码的编译选项,没有,但是有一处说到,MSVC编译器支持UTF-8格式的源文件,但是如果不带BOM

会被认为是ANSI格式的文件...!!!

把源文件转成带BOM的UTF-8,正常输出中文!本以为这下都是UTF8应该没问题了吧,没想到QT程序源码带BOM的居然乱码

而不带BOM就不乱码.崩溃,疯狂测试了半天,总结各情况不乱码的方法如下
文件编码    QT程序    控制台程序
ANSI      u8"中文"    "中文"
UTF8无BOM  "中文"     只能函数转换了UTF8->ANSI
UTF8有BOM        u8"中文"      "中文"