Frage

Ich habe einen Linux-Shared Library (.so) mit einer bestimmten Version von libc (GLIBC2.4) zusammengestellt und ich brauche es auf einem System mit anderer Version von libc zu verwenden. Ich habe keine Quellen für die Bibliothek in Frage, damit ich nicht für das neue System neu kompilieren kann. Ist es irgendwie möglich, die Abhängigkeiten in dieser Bibliothek zu einem anderen libc zu ändern?

War es hilfreich?

Lösung

Wenn Sie die .so auf einem System mit einem älteren glibc benötigen, würden Sie den Quellcode und neu kompilieren müssen / neu verknüpfen es mit dem älteren glibc. Die Alternative ist die erforderliche glibc auf dem alten System in einem Nicht-Standard-Speicherort und stellen Sie den LD_LIBRARY_PATH für die ausführbare Datei zu installieren, die diese .so

braucht

Wenn es eine neuere glibc ist eher, sollte es in der Regel nicht ein Problem wie glibc neigt rückwärtskompatibel zu sein.

Andere Tipps

Es sei denn, Ihre Bibliothek wirklich nutzt Schnittstellen, die (unwahrscheinliche) verändert, kann man einfach hexedit die Verweise auf die Versionen in der resultierenden .so Datei. Sie sind alle Texte sowieso.

Best Sie tun können, ist die alte glibc Version für Ihr System kompilieren und dann bauen Sie Ihre Anwendung mit dem glibc und Ihrer gemeinsamen Bibliothek. Hässliche obwohl ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top