解决 linux 下编译 make 文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
PS 背景:我在公司做 sdk 的 pc 端开发,所以经常会在 win 下编译通过之后跑到 linux 下再运行一次已确保能支持多平台。
今儿在 win 下跑完一程序,然后放到 linux 下跑的时候,我用指令:
sudo ./build.sh
但是却没有任何反应。于是我换了指令,用
chmod u+x build.sh
./build.sh
报错 “build.sh /bin/bash^M: 坏的解释器:没有那个文件或目录”。 以前遇到这个问题,换了几种编译方法就解决了,单这次还是不行,于是又换:
bash build.sh
编译的时候报错 :
后来一想 \r 这个符号怎么出现的,于是各种百度,才知道原因可能是因为我在 win 下操作的时候,修改到了此文件。
在 win 下编辑的时候,换行结尾是\n\r , 而在 linux 下 是\n,所以才会有 多出来的\r
用指令:
sed -i 's/\r$//' build.sh
会把 build.sh 中的\r 替换成空白!
再次编译!成功!!
PS:写在后面
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于