Domanda

Ho una libreria condivisa linux (.so) compilato con una versione specifica di libc (GLIBC2.4) e ho bisogno di usarlo su un sistema con diversa versione di libc. Non ho fonti per la libreria in questione, quindi non posso ricompilare per il nuovo sistema. E 'in qualche modo possibile cambiare le dipendenze in quella libreria libc ad una diversa?

È stato utile?

Soluzione

Se avete bisogno della .so su un sistema con una glibc più vecchio, si avrebbe bisogno il codice sorgente e ricompilare / ricollegare con la glibc più vecchio. L'alternativa è quella di installare il glibc richiesta sul vecchio sistema in una posizione non predefinita e regolare il LD_LIBRARY_PATH per l'eseguibile che ha bisogno di questo .so

Se c'è un glibc più recente piuttosto, dovrebbe di norma non essere un problema in quanto glibc tendono ad essere compatibile.

Altri suggerimenti

A meno che la vostra biblioteca usa davvero le interfacce che hanno cambiato (improbabile), si può solo HexEdit i riferimenti alle versioni nel file .so risultante. Sono tutto il testo in ogni caso.

meglio che puoi fare è compilare la vecchia versione di glibc per il vostro sistema e poi costruire l'applicazione con cui glibc e la tua libreria condivisa. Brutto anche se ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top