gcc)当它明显存在时不存在

所以我只是想用NDK建立一个库。 我相信Android.mk和Application.mk文件是正确的,但不管它们是否是无关紧要的。

在NDK目录中执行make APP=hello

Android NDK:构建应用程序'hello'
make:./build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc:找不到命令
编译thumb:hello <= apps / ssa / project / jni / hello / *。c
/ bin / sh:./build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc:找不到
make:*** [out / apps / ssa / armeabi / objs / hello / hello / *。o]错误127

所以从这里我决定去看看文件的位置。

cd build/prebuild/linux-x86/arm-eabi-4.4.0/bin/

ls -l的输出清楚地显示要存在的文件:

...
-rwxr-xr-x 1 bpescato bpescato  238680 2010-05-03 18:24 arm-eabi-g++
-rwxrwxrwx 1 bpescato bpescato  234520 2010-08-20 09:27 arm-eabi-gcc
-rwxr-xr-x 1 bpescato bpescato  234520 2010-05-03 18:24 arm-eabi-gcc-4.4.0
...

所以我接下来试着简单地执行它并让它告诉我用法:

$ ./arm-eabi-gcc

bash:./arm-eabi-gcc:没有这样的文件或目录

然后,为了确保我不疯狂:

$ less arm-eabi-gcc

“arm-eabi-gcc”可能是一个二进制文件。 无论如何看到它?

果然,查看文件会显示大量明显存在且位于磁盘上的二进制数据。

有谁知道发生了什么事?


该文件与两个相邻文件具有不同的权限和修改时间,这让我怀疑是否有某种东西使它变得有点损坏。 (试试“cmp arm-eabi-gcc arm-eabi-gcc-4.4.0”,应该是一样的。)

“ldd arm-eabi-gcc”是否报告缺失的库? 我在想的是缺少的文件本身不是“arm-eabi-gcc”,而是它所依赖的东西。

下一步将是“strace ./arm-eabi-gcc”来查看它所做的系统调用。


谢谢fadden的回应,但事实证明,我的问题与我的虚拟机(我不知道)64位机器的事实有关,并且我试图运行32位可执行文件。

所以,要解决问题并保持机器完好无损,我需要遵循64位指令。

由于许多论坛引用32位android ndk帮助,我决定只购买一个新的32位虚拟机。

链接地址: http://www.djcxy.com/p/23367.html

上一篇: gcc) is not present when it is clearly there

下一篇: ActionName Attribute & UrlHelper.Action Method in ASP.NET MVC