编译固件时报错’/r’ :command not found

背景

在编译某平台的工程时,出现报错(别的同事的电脑没问题就我的电脑会报错)

./bulid.sh:line 2:$'/r':command not found

分析过程

  1. OK的电脑重新去仓库里拉代码依然可以成功编译,证明仓库上的代码是没有问题的
  2. 使用对比工具对比我电脑上的bulid.sh和OK的电脑上的bulid.sh两个文件没有差异
  3. 在报错的行数上,删除换行,可以解决报错
  4. 使用notepad++打开build.sh文件,选择显示所有字符对比,发现差异如下图

OK的电脑,换行符是LF

我的电脑,换行符是CR LF

知识点

CR/LF介绍

CR是Carriage-Return的缩写,即回车

LF是Line-Feed的缩写,即换行

Linux(unix) 和 mac 默认使用 "\n" 作为换行符,即LF

Windows 默认使用 "\r\n" 作为换行符,即CR LF

 git中关于换行符的一些配置

core.autocrlf

core.autocrlf 选项有三个可选值:

true : 提交时改成LF,检出时改成CRLF

false (默认值): 提交时是什么就是什么,不改换行符,检出时也不改

input:  提交时改成LF,检出时不改

git查看和修改配置的指令

查看git config -l

全局配置git config --global core.autocrlf input

git配置建议

开发环境:windows

代码编译/运行环境: windows

建议配置 : core.autocrlf = true

开发环境:windows

代码编译/运行环境: Linux / Mac

建议配置 : core.autocrlf = input

开发环境:Linux / Mac

代码编译/运行环境: Linux / Mac

建议配置 : core.autocrlf = false (保持默认配置)

开发环境:Linux / Mac

代码编译/运行环境: Windows

建议配置 : core.autocrlf = true

解决方案

由于我是开发环境为windows,编译环境是Linux,所以在git命令行界面输入git config --global core.autocrlf input,然后重新checkout一下,就解决了该问题

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值