Qt Creator编译,存在中文导致错误: error: C2001: 常量中有换行符

77 篇文章 4 订阅
4 篇文章 0 订阅

问题简述

今天在跑别人的Qt程序时遇到了问题,编译时报了如下这些错误:

error: C2001: 常量中有换行符
error: C2062: 意外的类型“bool”
error: C2065: “flag”: 未声明的标识符
error: C2143: 语法错误: 缺少“)(在“return”的前面)
error: C2143: 语法错误: 缺少“;(在“return”的前面)
error: C2065: “temp”: 未声明的标识符
error: C3867: “QDialog::result”: 非标准语法;请使用 "&" 来创建指向成员的指针
error: C2059: 语法错误:}”
error: C1071: 在注释中遇到意外的文件结束

造成这些错误的原因是因为文件中存在中文,但编码格式不对

解决方法1:不使用英文

都9102年了,程序里应该全是英文,注释也换成英文

解决方案2:改变文件编码

qtCreator 编辑->选择编码
在这里插入图片描述
->SYSTEM ->按编码保存
在这里插入图片描述
这个问题的原因是因为Windows默认的GBK编码和UTF-8编码的冲突造成的,转换文件为GBK编码就行了。

源代码的编码编译器显示正常显示乱码
GBKwin vs cl(MSVC)
GBKwin mingw-g++
GBKlinux g++
UTF-8(无BOM)win vs cl(MSVC)编译失败error C2001: 常量中有换行符
UTF-8(无BOM)win mingw-g++
UTF-8(无BOM)linux g++
UTF-8(有BOM)win vs cl(MSVC)√(可能会遇到问题)
UTF-8(有BOM)win mingw-g++
UTF-8(有BOM)linux g++

解决方案3:使用偶数个中文或者奇数个中文最后加一个英文的点"."

这个奇妙的解决方法可以奏效,如果有大佬知道这个的原理,请告诉我。
这个解决方案适合于需要更改的文字数较少的情况。



参考资料:

  • 22
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值