首先明白为什么会报错:Qt Creator IDE生成的源代码文件默认采用的编码是UTF-8(可以使用类似Notepad++这种编辑器打开查看文件编码),但是MSVC编译器可以支持源代码文件的编码为UTF-8-BOM(即带BOM格式的),即默认不支持UTF-8。所以解决方案就有2个:一是让MSVC支持UTF-8,也就是下面方案1;二是将Qt Creator生成的源代码...
1.2 QtCreator打开文本(源代码)没问题,源代码传入MSVC编译器报错 Qt Creator中显示的汉字正常,但编译的时候会出现“常量中有换行符”等一系列错误报警。其实,这也是文字编码的问题。如下图所示: 1.3 QtCreator打开文本没问题,可以通过MSVC编译,但是程序运行时中文文本信息乱码 编译时未报错,但生成的程序中文乱码。如...
1 文件显示正常, 却报错"newline in constant"或者"常量中有换行符"? 这种情况,往往出现在奇数个汉字中. 这是为什么呢? 这是MSVC在编译时的解读问题, MSVC在解读文件时会根据文件有没有BOM,, 如果有BOM,那么按照BOM的方式去解读, 如果没有BOM,那么按照本地编码( 对于简体中文的Windows操作系统就是GB2312)去...
正文 QT上用MSVC去编译部分含有中文的字符串时会出现编译错误 error: C2001: 常量中有换行符 ,但用MinGW就不会。需在后面加个正常的字符才能正常编译,但出现 了。其编码如下图,明显的看着编码不对。 如果想都编译成功,那就需要在设置里把“文件编码”的 UTF-8 BOM 改成 “ 如果编码是UTF-8则添加 ”。如...
使用QStringLiteral宏包裹编译期字符串,使用u前缀标记为UTF串,在msvc上不加u会报错。其实想要不乱码最...
为了方便跨平台,Qt默认使用的字符编码是UTF-8(如图1),但是当使用msvc编译器编译时—— 问题1:会报出如图2所示的错误; 问题2:如图3,qDebug()输出的中文全显示为“?”。 图1 图2 图3 解决方法: 解决问题1: 将默认编码改为UTF-8,并且UTF-8 BOM设置为“如果编码是UTF-8则添加”,再编译一下,将报错的源...
第二套是Qt的MSVC 2010的版本,这个套件可以配合VS2010或QtCreator使用。VS对Qt库函数的支持不好,代码编辑时函数名写错了都不提示的,不方便开发。但是用这个版本开发的exe依赖文件少,一般对装了VC运行库的系统,VC编译出来的exe只依赖Qt5Core.dll,Qt5Gui.dll,Qt5Widgets.dl,这样比较好发布。一般是用Qt-...
这个宏告诉MSVC,执行字符集是UTF-8编码的,别瞎整成GB2312的!还有个好处,就是能用tr包中文,方便日后的翻译。 ps 之前的报错,我还发现,如果是偶数个中文就不会报错,奇数个就会编译报错。 同样适用Qt中文乱码的问题。 其实主要原因是用MSVC编译造成的。
编译器(Compiler)使用了 64 位版本的 MSVC,调试器(Debugger)却使用了 32 位的 MinGW 的 GDB,从而 GDB 不能调试 64 位程序而报错。 解决 在Qt 的工具-选项-构建和运行-Debuggers选择 CDB(Debugging Tools for Windows), 不能自动检测到则手动添加,如:C:\Program Files (x86)\Windows Kits\10\Debuggers\x...
更多的其实是平台适配类型,比如有的Qt是MinGW编译器版本的,而有的是MSVC编译器版本的。