У меня есть два исполняемых файла, оба кросс-компилированные для работы в Android. Я поместил оба на устройство в один и тот же каталог. Я поместил все общие библиотеки, от которых они зависят, в один каталог, включая ld-linux.so.3. Я запускаю исполняемые файлы, используя:
ld-linux.so.3 --library-path /path/to/libraries имя_исполняемого_файла
оба работают на старых версиях Android при запуске от имени любого пользователя. Оба работают на последней версии Android, если работают от имени пользователя root. Только один работает на последней версии Android при запуске от имени любого пользователя. Вместо этого выдает:
не удалось сопоставить сегмент из общего объекта: операция executable_name не разрешена
Как я могу найти чем отличается исполняемый файл, который не запускается?
Я много читаю в Интернете, и большинство людей, у которых возникает эта ошибка, либо:
А) не делают этого. иметь разрешения на выполнение для одной из библиотек, от которых они зависят, или самого исполняемого файла.
или
B) пытаются запуститься из каталога, смонтированного как NOEXEC.
оба из них, похоже, это не так. Он может найти все библиотеки, и я могу загрузить любую библиотеку отдельно и посмотреть, от каких еще вещей она зависит. Кроме того, я могу запускать базовые сценарии из интересующих каталогов.
Новая версия Android, Jelly Bean, представляет собой другую версию ядра Linux, и мне интересно, связано ли это с этим. .
Что дать? Как выполнить отладку?
Подробнее здесь: https://stackoverflow.com/questions/135 ... -operation
Каковы возможные причины «не удалось сопоставить сегмент общего объекта: операция не разрешена» и как отладить? ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Мой файл .zshrc каждый раз выполняется дважды. Каковы возможные причины?
Anonymous » » в форуме Linux - 0 Ответы
- 75 Просмотры
-
Последнее сообщение Anonymous
-