Linux, требующий андроида (arm-eabi-gcc), отсутствует, когда он явно там - PullRequest
3 голосов
/ 20 августа 2010

Так что я просто пытаюсь собрать библиотеку, используя NDK.Я считаю, что файлы Android.mk и Application.mk правильны, но не имеет значения,

при выполнении make APP=hello в каталоге NDK

Android NDK: Сборка для приложения 'hello'
make: ./build/prebuilt/linux-x86/arm-eabi-4.4.0/bin/arm-eabi-gcc: Команда не найдена
Скомпилировать большой палец: hello <=apps / ssa / project / jni / hello / *. c <br>/ 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: такого файла или каталога нет

Тогда, просто чтобы убедиться, что я не сумасшедший:

$ меньше arm-eabi-gcc

«arm-eabi-gcc» может быть двоичным файлом.Все равно видишь?

Конечно, при просмотре файла отображается множество двоичных данных, которые явно присутствуют и находятся на диске.

Кто-нибудь имеет представление о том, что происходит?

Ответы [ 2 ]

1 голос
/ 23 августа 2010

Спасибо, fadden за ответ, однако оказалось, что моя проблема была связана с тем фактом, что моя виртуальная машина была (без моего ведома) 64-разрядной машиной, и я пытался запустить 32-разрядный исполняемый файл.

Итак, чтобы решить проблему и сохранить машину в исправном состоянии, мне нужно было выполнить 64-битные инструкции.

Поскольку многие форумы ссылаются на справку по 32-битной android ndk, я решил просто приобрести новую 32-битную виртуальную машину.

1 голос
/ 21 августа 2010

Файл имеет разные права доступа и время модификации от двух соседних файлов, что заставляет меня задуматься, не исказил ли он что-то немного.(Попробуйте "cmp arm-eabi-gcc arm-eabi-gcc-4.4.0", должно быть то же самое.)

Сообщает ли "ldd arm-eabi-gcc" о отсутствующих библиотеках?Я думаю, что файл, который отсутствует, не сам "arm-eabi-gcc", а скорее что-то, от чего он зависит.

Следующим шагом будет "strace" ./arm-eabi-gcc "чтобы узнать, какие системные вызовы он делает.

...