Каковы возможные причины «не удалось отобразить сегмент из общего объекта: операция не разрешена» и как отладить?
У меня есть два исполняемых файла, оба кросс-скомпилированы 9X_android-api для работы на Android. Я поместил оба устройства 9X_android-ui в один каталог. Я поместил все разделяемые 9X_dynamic-linking библиотеки, от которых они зависят, в одном 9X_android-framework каталоге, включая ld-linux.so.3. Я запускаю 9X_android-framework исполняемые файлы, используя:
ld-linux.so.3 9X_linker-errors - путь-библиотеки / путь / к / библиотекам 9X_android имя-исполняемого_файла
оба работают на более 9X_android-ui старых версиях Android при работе от имени 9X_linking-errors любого пользователя. Оба работают на последней 9X_linker версии Android, если они работают с правами 9X_linking-errors root. Только один работает на последней 9X_android-api версии Android при запуске от имени любого 9X_android-sdk пользователя. Вместо этого он дает:
не удалось 9X_linking-errors отобразить сегмент из общего объекта: операция 9X_android имя_файла не разрешена
Как узнать, чем отличается 9X_executable исполняемый файл, который не запускается?
Я 9X_link-errors много читаю в Интернете, и большинство людей, которые 9X_android-sdk сталкиваются с этой ошибкой, либо:
A) у вас 9X_android нет прав на выполнение для одной из библиотек, от 9X_android-sdk которой они зависят, или для самого исполняемого 9X_dynamic-linking файла.
или
B) пытаются запустить из каталога, который 9X_linking-errors смонтирован как NOEXEC.
Похоже, что оба эти 9X_android-sdk случая не соответствуют действительности. Он 9X_android-sdk может найти все библиотеки, и я могу загрузить 9X_android-framework любую библиотеку самостоятельно и посмотреть, от 9X_android-framework каких еще вещей она зависит. Также я могу 9X_linking запускать базовые скрипты из интересующих 9X_android каталогов.
Новая версия Android, Jelly Bean, представляет 9X_linking собой другую версию ядра Linux, и мне интересно, связано 9X_android-api ли это с ней.
Что подарить? Как мне отлаживать?
Ответ #1
Ответ на вопрос: Каковы возможные причины «не удалось отобразить сегмент из общего объекта: операция не разрешена» и как отладить?
Проблема с разрешением. Необходимо перемонтировать 9X_executable / tmp. У меня работает следующая команда 9X_linker-errors (Centos 7):
sudo mount / tmp -o remount, exec
Ответ #2
Ответ на вопрос: Каковы возможные причины «не удалось отобразить сегмент из общего объекта: операция не разрешена» и как отладить?
У меня была эта ошибка в другом контексте. По 9X_linking-errors какой-то причине возникает ошибка при попытке 9X_android-api использовать папку / tmp.
Чтобы решить эту проблему, я 9X_linker-errors просто:
mkdir tmp
export TMPDIR=`pwd`/tmp
- Это помогло решить совершенно не связанную проблему (установка Python / Anaconda на машине, где у меня не было доступа ...
Ответ #3
Ответ на вопрос: Каковы возможные причины «не удалось отобразить сегмент из общего объекта: операция не разрешена» и как отладить?
Проблема заключалась в том, как были скомпилированы 9X_executable исполняемые файлы. Их нужно было скомпилировать 9X_dynamic-linking с помощью кросс-компилятора, который должным 9X_linker-errors образом поддерживал бы новые устройства 9X_android-sdk arm. Компилятор, который я использовал, сгенерировал 9X_executable исполняемые файлы, которые работали только 9X_android-sdk на подмножестве устройств arm. Проблема 9X_android-api заключалась не в разных версиях Android.
-
2
-
5
-
4
-
2
-
2
-
3
-
3
-
2
-
5
-
1
-
2
-
3
-
2
-
2
-
1
-
1
-
1
-
2
-
2
-
18
-
1
-
16
-
2
-
2
-
3
-
2
-
1
-
5
-
2
-
5
-
4
-
3
-
3
-
1
-
2
-
4
-
1
-
1
-
1
-
8
-
1
-
4
-
1
-
3
-
3
-
1
-
2
-
2
-
3
-
1