Запуск файла ELF с несовпадением версий файла общего объекта - PullRequest
0 голосов
/ 01 мая 2020

У меня есть файл ELF, который ссылается на общий объектный файл из версии X библиотеки. У меня есть доступ только к версии общего объектного файла из версии Y библиотеки. Когда я пытаюсь запустить файл ELF, я получаю <ELF filename>: <shared object filename>: version X not found (required by <ELF filename>). Установка версии Y библиотеки для меня сейчас не вариант. Есть ли способ заставить файл ELF игнорировать несоответствие версий и попытаться запустить? Могу ли я обмануть файл ELF или как-то отредактировать общий объектный файл, чтобы изменить очевидную версию?

1 Ответ

1 голос
/ 01 мая 2020

Нет. «Версия» - это не версия библиотеки, а версия символа (файлы ELF поддерживают управление версиями символов для обеспечения обратной двоичной совместимости при изменении API, подробности см. в этом сообщении ).

По сути, он говорит о том, что в нем отсутствует символ (функция, константа, глобальный и т. Д. c.), Которого нет в вашей библиотеке. Это означает, что библиотека не имеет необходимого интерфейса.

...