1. 程式人生 > >解決 linux下編譯make檔案報錯“/bin/bash^M: 壞的直譯器:沒有那個檔案或目錄” 問題

解決 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:寫在後面

一樓大牛提議,有一個dos2unix的軟體,我一看果然好用!感謝CedarDiao 大牛!