在windows上編輯好sh后到linux下運(yùn)行時(shí)常會(huì)出現(xiàn)“no such file or directory”,這一般是格式的問題,改成unix格式就可以,具體步驟如下。
1、開始以為是sh路徑問題,用which查看是正確的。
2、用vim打開文件:vi 文件名。
3、按‘:’號(hào)鍵,輸入查看文件的格式命令set ff或set fileformat。
4、可以看到格式是DOS的。
5、再按‘:’鍵輸入set ff=unix 或 set fileformat=unix設(shè)置格式為unix的。
6、然后‘:’鍵后輸入wq,保存,再重新運(yùn)行就可以了。
注意事項(xiàng):開始時(shí)要先確保權(quán)限chmod u+x 文件名。
但也有特殊情況,很多時(shí)候發(fā)現(xiàn)自己編譯的程序明明是存在的,可是運(yùn)行時(shí)候卻會(huì)報(bào)No such file or directory的問題,原因不一,特地整理一下。
1、編譯器的架構(gòu)有差,這是發(fā)生在一次新的開發(fā)板的交叉編譯中產(chǎn)生的,同樣的程序用同樣的工具鏈編譯后,一個(gè)開發(fā)板正常,二另一個(gè)報(bào)No such file or directory,文件明明存在,這個(gè)問題在于arm-linux-guneabi-和arm-linux-guneabihf-這兩個(gè)鏈的差別在于hf二字,這個(gè)是浮點(diǎn)單元的支持與否,選擇錯(cuò)誤會(huì)導(dǎo)致上述錯(cuò)誤發(fā)生。
2、文件的確存在,缺少動(dòng)態(tài)庫,程序的確執(zhí)行了,那個(gè)是缺少動(dòng)態(tài)庫所拋出的錯(cuò)誤ldd <可執(zhí)行文件名>查看可執(zhí)行文件鏈接了哪些系統(tǒng)動(dòng)態(tài)鏈接庫。
3、windows下vscode編譯出現(xiàn)這樣的問題是因?yàn)槲募杏锌崭。解決辦法:去掉空格。