Collegamento a una specifica versione della libreria condivisa in linux
-
05-07-2019 - |
Domanda
Il mio processo di compilazione è costituito dal generatore di qmake Makefile di Qt e dalla tipica utility make in bundle con Linux.
La mia applicazione è composta da alcune librerie condivise e l'applicazione principale è collegata a esse.
Come posso applicare il tipico schema di versioning di Linux sulle mie librerie? (Usa la versione 2 - > link contro foo.so.2 che punta a foo.so.2.y.z con un link generato da ldconfig).
La risposta non deve essere specifica per il mio processo di compilazione.
Soluzione
La tua libreria dovrebbe essere chiamata libfoo.so.2.yz
, con collegamenti simbolici di libfoo.so.2
e libfoo.so
entrambi indicando quello. La libreria dovrebbe essere creata usando -soname libfoo.so.2
nella riga di comando del linker (o -Wl, -soname, libfoo.so.2
nella riga di comando gcc ).
Spero che ti aiuti!