Qt 代码编译语法错误 UNIX(LF) Windows(CRLF)

下载github上的qt工程,拿回来一编译出现了N多错误,但是工程明明是正确的,没有什么特殊的配置设置,但是就是几乎所有的代码都在报错。
类似与:error: C2059: 语法错误:“namespace”

想了一下,应该不是代码内容的问题,那就只能出在格式上,首先查看代码的编码格式,是UTF-8没错,不是编码问题。这就奇怪了,查看系统设置里面,发现除了编码格式,还有换行符的设置。

查看了一下,果然下载的内容默认设置的是UNIX的LF格式,全部改成CRLF后,编译正常。
总结一下网上说的该类问题的原因主要分为三种:

  1. 文件编码格式,要于qt中设置一致;
  2. 换行符格式,要于qt中设置一致;
  3. 文件循环引用的问题,记得要设置宏

Qt项目,编译打包下载的代码,一直出现本没有语法错误的error,后来发现,其实对应的.cpp/.h文件格式为UNIX(LF),Qt windows 默认为CRLF,更改完之后,报错消失,编译正常。

远端托管代码打包下载到本地,编译容易出现一些本没有语法错误的error,那么就注意下,下载的文件格式是否和编译环境的一致;

1、LF和CRLF是什么?

CRLF 是 carriage return line feed 的缩写,中文意思是回车换行。

LF 是 line feed 的缩写,中文意思也是换行。

它们都是文本换行的方式。

2、LF和CRLF区别

CRLF: “\r\n”, windows系统环境下的换行方式

LF: “\n”, Linux系统环境下的换行方式
 

批量转换 LF 和 CRLF 的小技巧

在做跨平台开发移植的时候,最常见的问题就是不同操作系统的换行不同(例如,Windows 上是 CRLF,而 Linux 上是 LF,MacOS 以前是 CR,现在也是 LF),如果不注意的话,可能会导致编译的时候报诡异的错误,虽然说有些优秀的文本工具(notepad++, vscode 等)可以自动转换,但是它们都没有提供批量转换的方法,所以一旦遇到有成百上千个的文件需要转换,那么一个个手动去转明显效率低下。虽然网上提到批量转换的文章很多,但是感觉都没有介绍清楚,

通过 EditPlus 批量转换

操作很简单,进入相应的目录下,然后打开全部文件,如图操作即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高亚奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值