Изменение определенной общей библиотеки исполняемого файла Linux

0

Я создаю приложение для Android на сервере под управлением GNU / Linux, и aapt жалуется, что lib / libz.so.1 устарела:

/lib/libz.so.1: no version information available (required by .../aapt)

Я обнаружил проблему и пытаюсь жестко связать новую библиотеку zlib с aapt, чтобы она использовала обновленную библиотеку вместо старой libz.so.1 => libz.so.1.2.3 (потому что я хотел бы избегайте перенастройки всех программ, использующих существующий zlib). К сожалению, / lib и / aapt расположены на отдельных разделах жесткого диска.

Какой лучший способ обойти это? Есть ли простой способ просто заменить, от какой версии libz aapt зависит?

Спасибо


источник

Ответы:

1
  1. Самый простой вариант - поместить правильную версию библиотеки где-нибудь (где угодно, отдельно) и установить LD_LIBRARY_PATHпеременную среды в этот каталог при выполнении aapt.

  2. Поместите правильную версию библиотеки где-то, как указано выше, но измените «rpath» aaptбинарного файла, чтобы он смотрел там, используя chrpath. См. Https://stackoverflow.com/questions/13769141/can-i-change-rpath-in-an-already-compiled-binary для получения дополнительной информации.

Ян Худек
источник