Mi piacerebbe creare librerie statiche e condivise in un progetto.Creazione di librerie C++ sia statiche che condivise
So che è necessario creare librerie condivise da oggetti compilati con -fpic per ottenere il codice di posizione indipendente mentre la libreria statica non ha bisogno di questo. Questo è tutto a posto e posso creare una libreria condivisa o statica.
Non vorrei compilare la mia fonte due volte per ottenere i diversi file oggetto, quindi come si fa normalmente? Ho letto how to get a shared library based on a static one. Tuttavia, l'esempio mostra la libreria statica creata con -fpic. È questa la strada da percorrere? Ci sono cose di cui essere consapevole con questo?
Esiste un approccio comune per compilare sia le librerie statiche che quelle condivise? Per esempio. prima statica e basata sulla lib viene creata una versione condivisa?
Sono interessato a sapere se ci sono diversi approcci per questo e cosa considerare quando si seleziona.
Sto utilizzando gcc4.4 su Linux.
Grazie in anticipo!
Per questo approccio, come organizzare i file oggetto se si desidera avere contemporaneamente librerie sia statiche che condivise? Qualcosa come obj/static/... e obj/shared/...? – murrekatt
@murrekatt: certo. È bello utilizzare una directory separata per ogni configurazione di build in modo da poterne usare molti contemporaneamente senza doverli ricompilare completamente per aggiornarli. Rendere tali sottodir in una directory per tenerli dà esattamente ciò che si mostra, almeno se si utilizza "obj" come directory di build principale e "statico" e "condiviso" i nomi di queste due build. –