Linux-Ubuntu 终端中命令未找到问题

Linux-Ubuntu 终端中命令未找到问题

make我的朋友在尝试调用编译我和第二个朋友之前已成功编译的应用程序时遇到问题。

该文件使用一个“linux-devkit”包,该包拥有一个 /bin 子目录,其中包含许多称为arm-arago-linux-gnueabi-本质上是可执行文件的文件(例如,arm-arago-linux-gnueabi-gcc本质上是 GCC 编译器)。

当我们调用项目的 Makefile 目录时,编译过程的一部分make install包括对此类“linux-devkit 文件”的调用。当我或我的第二个朋友在 Linux 终端中调用该命令时,一切都运行良好。但是当我的朋友这样做时,出现错误消息:

arm-arago-linux-gnueabi-gcc: No such command found

(注:翻译自葡萄牙语 Ubuntu)

经过无数次测试后,我们确实发现了一个有趣的区别:如果我们通过终端进入~/linux-devkit/bin文件夹并调用arm-arago-linux-gnueabi-gcc两个工作系统之一,答案是本质上告诉文件已找到,但缺少命令规范:

arm-arago-linux-gnueabi-gcc: no input files

这是预期的错误消息。但是当我有问题的朋友执行相同的命令时,错误消息是:

bash: ./arm-arago-linux-gnueabi-gcc: File or directory not found

(注:翻译自葡萄牙语 Ubuntu)

就好像终端根本找不到使用它的文件,即使在ls调用和使用 Nautilus 时也会出现这种情况!

或者这些文件的用户权限是 100% 相等,所以那里不会有问题。有人猜测发生了什么事吗?


编辑:

这是我得到的答案,沃尔克·西格尔:

我确信文件已就位...

这就是输出,感谢您的帮助。

~/re8k/linux-devkit/bin$ export LC_ALL=C
~/re8k/linux-devkit/bin$ command -v arm-arago-linux-gnueabi-gcc
~/re8k/linux-devkit/bin$ ls -ld ~/re8k/linux-devkit ~/re8k/linux-devkit/bin ./arm-arago-linux-gnueabi-gcc
-rwxr-xr-x  1 diogenes diogenes 448843 Jul  1  2011 ./arm-arago-linux-gnueabi-gcc
drwxr-xr-x 12 diogenes diogenes   4096 Apr 15 17:28 /home/diogenes/re8k/linux-devkit
drwxr-xr-x  2 diogenes diogenes   4096 Sep  3 10:59 /home/diogenes/re8k/linux-devkit/bin
~/re8k/linux-devkit/bin$ head -1 ./arm-arago-linux-gnueabi-gcc
ELF��4�g4('$44�4�44�4������������HH�H�DDQ�tdR�td���/l!��ԟX-linux.so.2GNUGNUI������,�_�_b�
diogenes@diogenes-VirtualBox:~/re8k/linux-devkit/bin$ mount | grep "\s$(stat -c%m .)\s"
/dev/sda1 on / type ext4 (rw,errors=remount-ro)

编辑2:

diogenes@diogenes-VirtualBox:~/re8k/linux-devkit/bin$ ./arm-arago-linux-gnueabi-gcc
bash: ./arm-arago-linux-gnueabi-gcc: No such file or directory

打印屏幕来补充:

终端打印屏幕

答案1

当 Volker Siegel 提出库的问题时,一位同样使用 Linux 的记者告诉我们,他也遇到了同样的问题,原因正是缺少一些库。

我们按照 Volker 的建议在终端上运行sudo apt-get install ia32-libs,但系统报告该库不再可用,建议我们也许应该安装其他库:

lib32z1 
lib32ncurses5 
lib32bz2-1.0

安装它们后,问题就解决了。

答案2

查看该文件arm-arago-linux-gnueabi-gcc

它可能是一个脚本文件,需要在第一行中有一个解释程序,但没有找到。 (或者甚至找不到解释器需要的文件......)

解释器在文件的第一行定义,例如

#!/bin/bash

如果仅通过查看脚本问题并不明显,请提供更多详细信息;

最好将以下命令的输出添加到问题中 - 只需几行:

$ export LC_ALL=C
$ cd ~/linux-devkit/bin
$ command -v arm-arago-linux-gnueabi-gcc
$ ls -ld ~/linux-devkit ~/linux-devkit/bin ./arm-arago-linux-gnueabi-gcc
$ head -1 ./arm-arago-linux-gnueabi-gcc
$ mount | grep "\s$(stat -c%m .)\s"

(第一行用于在此 shell 中获取英文错误消息,最后一个命令显示包含该目录的分区的文件系统和安装选项。)

相关内容