2010-10-16 174 views
53

我只是想運行在命令行,./arm-mingw32ce-g++可執行文件,但後來我得到錯誤信息,「沒有這樣的文件或目錄」,但它的存在

bash: ./arm-mingw32ce-g++: No such file or directory

我運行Ubuntu Linux操作系統10.10。 ls -l名單

-rwxr-xr-x 1 root root 433308 2010-10-16 21:32 arm-mingw32ce-g++

使用sudo(sudo ./arm-mingw32ce-g++)給出

sudo: unable to execute ./arm-mingw32ce-g++: No such file or directory

我不知道爲什麼OS甚至不能看到該文件時,它的存在。有什麼想法嗎?

回答

53

此錯誤意味着./arm-mingw32ce-g++不存在(但它)​​,或它的存在,是由內核,但其動態加載程序不可識別的動態鏈接的可執行文件。您可以通過運行ldd /arm-mingw32ce-g++來查看所需的動態加載器;標記爲not found的任何東西都是您需要安裝的動態加載器或庫。

如果你想運行上的AMD64安裝32位二進制:

+8

真棒,作品!順便說一下,ldd的輸出不是一個動態可執行文件(在我安裝ia32-libs之前)。 – Warpspace 2010-10-16 14:35:49

+3

一個贊成,對於64位安裝的32位加載器的提示! – Dinaiz 2012-06-24 22:48:57

+0

這讓我發瘋。完美的作品。 – LeviX 2012-10-24 18:23:48

3

我得到了一個簡單的bash腳本沒有32/64位問題的錯誤。這可能是因爲您嘗試運行的腳本在其中存在錯誤。這個ubuntu forum post表明,對於正常的腳本文件,你可以在前面加上'sh',你可能會從中得到一些調試輸出。例如

$ sudo sh arm-mingw32ce-g++ 

看看你是否得到任何輸出。

在我的情況下,實際的問題是我試圖執行的文件是Windows格式而不是Linux。

11

如果試圖運行腳本並且shebang拼寫錯誤,則也會發生此錯誤。確保它讀取#!/bin/sh#!/bin/bash或您正在使用的任何解釋器。

+2

我指的是可執行文件,而不是腳本。然後,別人可能會發現這個評論有用 – Warpspace 2014-03-14 05:25:02

+0

是的,但我對這個問題着迷於這個確切的問題,所以如你所說,也許別人也會。 – 2014-03-14 09:40:38

+0

在我的情況下,我試圖運行'。/ my/full/path/myscript'而不是'。/ myscript'。 – Noumenon 2017-07-05 03:28:36

1

我對我在我的Mac上創建的文件有同樣的問題。 如果我嘗試在./filename的shell中運行它,我得到了文件未找到的錯誤消息。 我認爲文件有問題。

我做了什麼:

打開一個SSH會話服務器
貓文件名
輸出複製到剪貼板
rm文件名
觸摸文件名
VI文件名
I可以進行插入模式
從剪貼板粘貼
ESC內容結束插入模式
:wq!

這爲我工作。

+0

原始但工程..;) – Rotem 2017-03-23 07:51:11

5

當我嘗試運行一個Python腳本時,我有同樣的錯誤信息 - 這不是@ Warpspace的預期用例(請參閱其他評論),但這是我搜索的頂級命中,所以也許有人會發現它有用。

在我的情況下,這是DOS行結束(\r\n而不是\n),shebang行(#!/usr/bin/env python)會絆倒。一個簡單的dos2unix myfile.py修復它。

10

我遇到這個錯誤,當我試圖建立在Ubuntu硒源。即使我擁有所有先決條件,具有正確shebang的簡單shell腳本仍無法運行。

file file-name # helped me in understanding that CRLF ending were present in the file. 

我在Vim中打開該文件,我可以看到,只是因爲我曾經編輯在Windows機器上這個文件,它是在DOS格式。我將文件轉換爲Unix格式下面的命令:

dos2unix filename # actually helped me and things were fine. 

我希望我們,每當我們編輯跨平臺的,我們應該照顧的文件格式以及文件應照顧。

+0

是。 'dos2unix文件名'保存了我的一天。 – richie 2016-03-15 18:19:13

+0

它適合我,謝謝。 – meadlai 2018-01-17 06:52:08

0

我得到了這個錯誤「No such file or directory」,但它存在是因爲我的文件是在Windows中創建的,我試圖在Ubuntu上運行它,並且該文件包含無效15 \ r哪裏有新行。 我剛剛創建一個新的文件截斷不需要的東西

sleep: invalid time interval ‘15\r’ 
Try 'sleep --help' for more information. 
script.sh: 5: script.sh: /opt/ag/cont: not found 
script.sh: 6: script.sh: /opt/ag/cont: not found 
[email protected]:/home/abc12/Desktop# vi script.sh 
[email protected]:/home/abc12/Desktop# od -c script.sh 
0000000 # ! / u s r / b i n / e n v  b 
0000020 a s h \r \n w g e t  h t t p : /

0000400 : 4 1 2 0 /\r \n 
0000410 
[email protected]:/home/abc12/Desktop# tr -d \\015 <script.sh> script.sh.fixed 
[email protected]:/home/abc12/Desktop# od -c script.sh.fixed 
0000000 # ! / u s r / b i n / e n v  b 
0000020 a s h \n w g e t  h t t p : //

0000400 /\n 
0000402 
[email protected]:/home/abc12/Desktop# sh -x script.sh.fixed 
0

我只是有這個問題mingw32 bash。我從Program Files (x86)\nodejs執行了node/npm,然後將它們移動到disabled目錄中(實際上將它們從路徑中移除)。我也有Program Files\nodejs(即64位版本)的路徑,但只有在x86版本之後。重啓bash shell之後,可以找到64位版本的npm。 node始終正常工作(使用node -v進行檢查,在x86版本移動時發生更改)。

我覺得hash -r會一直努力,而不是重新啓動的bash:https://unix.stackexchange.com/a/5610

相關問題