Подтвердить что ты не робот

Msgstr "Нет такого файла или каталога", пытающегося выполнить linux binary на Android-устройстве

Я построил собственный бинарный файл ARM для Linux с помощью инструментальной привязки Android GCC (простой Linux, без андроида или NDK).

Я подключил, с моего компьютера, через оболочку adb, к планшету под управлением Android 4. Я "adb push" редактировал этот двоичный файл в /system/bin на этом устройстве, надеясь, что я его запустил. Я отметил его исполняемый файл с помощью chmod 777.

Если я попытаюсь выполнить его, я бы получил "Нет такого файла или каталога".

Дополнительная информация: Маленькая программа использует fc и fm libs. Поскольку инструментальная цепочка ARM не имеет crt1, который, как я нашел в примере, обычно содержит код запуска, мы искали файлы, содержащие его в сборке Android, найдены crtbegin_dynamic и crtend_dynamic, но для _статического эквивалента одна из пары не было, поэтому я не прошел статику в GCC. Он был построен с помощью "-nostdlib".

Какая может быть проблема (проблемы)?

4b9b3361

Ответ 1

Если вы работаете на 64-битной платформе, такой как Ubuntu 64, этот совет может помочь вам решить проблему. Просто попробуйте установить 32-разрядные библиотеки совместимости i386, APT-GET:

sudo apt-get install ia32-libs

Он отлично работал у меня. Дайте мне знать, если вы застряли в одной и той же проблеме.

Для Ubuntu 13.10 и выше

Как сказал aditya в комментариях к этому ответу:

Начиная с Ubuntu 13.10, нужно запустить это сейчас: sudo apt-get install lib32z1, вам может понадобиться получить также stdlibs С++, с этим: sudo apt-get install lib32ncurses5 lib32stdc++6

Ответ 2

Чтобы изменить комментарий aditya выше, вы также можете использовать следующие для stdlib в С++ в Ubuntu 13.10:

sudo apt-get install lib32ncurses5 libstdc++6:i386