2010-10-16 172 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

相关问题