Ändern der spezifischen gemeinsam genutzten Bibliothek der ausführbaren Datei von Linux

1177

Ich baue eine Android-Anwendung auf einem GNU / Linux-basierten Server und aapt beschwert sich, dass lib / libz.so.1 nicht mehr aktuell ist:

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

Ich habe das Problem erkannt und versuche, die neue zlib-Bibliothek fest mit aapt zu verknüpfen, sodass die aktualisierte Bibliothek anstelle der alten libz.so.1 => libz.so.1.2.3 verwendet wird (weil ich das möchte.) Vermeiden Sie, alle Programme, die die vorhandene Zlib verwenden, neu zu konfigurieren. Leider befinden sich / lib und / aapt auf separaten Partitionen der Festplatte.

Was ist der beste Weg, um dies zu umgehen? Gibt es eine einfache Möglichkeit, einfach zu ersetzen, von welcher Version von libz aapt abhängt?

Vielen Dank

0

1 Antwort auf die Frage

1
Jan Hudec
  1. Die einfachste Option besteht darin, die richtige Version der Bibliothek an einem beliebigen Ort (irgendwo, separat) abzulegen und die LD_LIBRARY_PATHUmgebungsvariable bei der Ausführung auf dieses Verzeichnis zu setzen aapt.

  2. Fügen Sie die richtige Version der Bibliothek an einem beliebigen Ort wie oben ein, ändern Sie jedoch "rpath" der aaptBinärdatei, um dort zu suchen chrpath. Weitere Informationen finden Sie unter https://stackoverflow.com/questions/13769141/can-i-change-rpath-in-an-already-compiled-binary .