今天在运行自己制作的补丁的时候,对旧代码打补丁的时候,sudo patch -p1 < xxx.patch的时候,报错了:
sudo patch -p1 < ffmpeg-fix-bug-too-many-frames-buffered.patch patching file fftools/ffmpeg.c Hunk #1 FAILED at 1449 (different line endings). Hunk #2 FAILED at 1498 (different line endings). 2 out of 2 hunks FAILED -- saving rejects to file fftools/ffmpeg.c.rej
原因:
网上搜索了一圈,大概原因可能是因为项目有文件有拷贝到windows平台下过,根据自己的情况,确实之前有过这种操作,所以尝试了一下下面的解决方式,顺利解决。
解决方式:
安装dos2unix工具:sudo apt install -y dos2unix
然后对ffmpeg.c和补丁文件都进行了格式转码:
sudo dos2unix fftools/ffmpeg.c sudo dos2unix ffmpeg-fix-bug-too-many-frames-buffered.patch sudo patch -p1 < ffmpeg-fix-bug-too-many-frames-buffered.patch