声称android(arm-eabi-gcc)的Linux显然不存在

时间:2010-08-20 13:49:26

标签: linux android-ndk

所以我只是尝试使用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:未找到命令
  编译拇指: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”可能是二进制文件。无论如何看到它?

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

有谁知道发生了什么事?

2 个答案:

答案 0 :(得分:1)

该文件具有与两个相邻文件不同的权限和修改时间,这让我想知道是否有些东西被破坏了。 (试试“cmp arm-eabi-gcc arm-eabi-gcc-4.4.0”,应该是一样的。)

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

下一步将是“strace ./arm-eabi-gcc”,看看它正在调用什么系统。

答案 1 :(得分:1)

感谢fadden的回复,但事实证明我的问题与我的VM(我不知道)64位机器这一事实有关,我试图运行32位可执行文件。

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

由于许多论坛引用了32位android ndk帮助,我决定只获得一个新的32位VM。