今天在编译新项目SDK的时候碰到这个问题,特此记录一下。
首先我在windows系统里面下载的代码,我尝试在windows下面运行build.sh没什么问题,但由于工具链是linux的,我就把代码拷贝到linux下编译就出现了这个错误。
问题原因
在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。Git提供了一个“换行符自动转换”功能。在下载和提交代码的时候,它会自动将换行符进行转换,所以就出现了这个问题。
解决方法
1.使用控制台修改,打开“Git Bash”,然后输入
git config --global core.autocrlf false
git config --global core.safecrlf true
2.修改~/.gitconfig文件,加入或修改下面的行
[core]
autocrlf = false
其他修改方法
sed -i 's/\r$//' xxx.sh
dos2unix xxx.sh