回车与换行
- 当前由于需要windows与Linux环境同时使用Git 代码管理,所以,在Windows上的Git 安装时,选择不转换文件,也就是文件的回车换行保持不变
编译失败
- 在其他的电脑上,编译没有问题,新电脑上,安装Visual Studio 2022后,编译,发现有个文件无法编译通过,并且,比对代码,没有明显的不同
回车与换行
- 通过Visual Studio,可以指定这个文件的【回车换行】类型,注意回车与换行不只是文件末尾的\r\n的不同,而是整个文件的每行代码都不同
解决方法
- 默认是
\n
的,直接改为\r\n
后,发现编译通过
- windows 上的Visual Studio 2022,对于 只有
\n
的代码文件,编译造成失败,需要改为 \r\n
,也就是代码行为:CRLF
- Git 上显示整个文件都被修改了,但是修改的内容是:【代码行】末尾的回车换行不一致
分析
- 之前的电脑,大都是Git 在git pull 或 git checkout时,采用了自动换行,也就是
\n
的自动转换为 \r\n
,这有个好处就是默认\n
的文件,在windows上打开,可以正常的换行显示,否则整个文件显示为一行。 - Git 自动换行有个【坏处】就是把Linux shell 脚本也自动换行了,造成 Linux shell 脚本无法使用
小结
- 如果是windows、Linux 环境代码的混合开发管理,一定要注意【回车】【换行】引起的问题
- 最早被这个问题【坑过】的时候,是默认【回车换行】自动转换引起本地代码正常,
git push
到服务器,别人拉取回来,编译不过,发现lib
库文件增加了【回车换行】引起无法使用