2010-01-25 5 views
1

Je suis tryng pour créer une bibliothèque partagée qui relie en interne de nombreuses bibliothèques partagées et une bibliothèque statique. Dans mon cas, ma bibliothèque partagée n'inclut pas la bibliothèque statique. Je veux savoir ce que j'essaie si c'est correct ou j'ai besoin de convertir la librairie statique en lib libérée puis faire le lien.Puis-je créer une bibliothèque partagée qui a à la fois bibliothèque statique et partagée?

J'ai besoin de savoir qu'il y a un drapeau makefile qui me permette d'ajouter une bibliothèque statique avec lib libérée.

Veuillez nous suggérer.

+0

les drapeaux de votre poste doivent être plus spécifiques (bibliothèque ...) – Phong

+0

vous devez nous montrer comment vous effectuez le lien. –

+0

Existe-t-il un moyen de lier sans inclure éventuellement la bibliothèque statique? – Murali

Répondre

0

Vous pouvez créer une bibliothèque dépendant d'une autre bibliothèque (statique et dynamique). Mais vous devez intégrer la partie bibliothèque statique dans votre (car celui-ci ne peut pas être charger dynamiquement)

dependence of your source code: 
your_library -> static_library.lib 
your_library -> dynamic_library.dll 

how you implement can it (to be used by an executable): 

your_library.dll (which contain your_library and static_library source code) 
dynamic_library.dll (to distribute with your_library.dll) 

or 

your_library.dll 
static_library.dll (to be created from the static_library.lib) 
dynamic_library.dll (to distribute with your_library.dll) 

edit: ici peut-ce que vous cherchez convert static library to shared library (il est pour Linux, mais vous aurez la même pour os):

.a files are just archives of .o object files, so all you need to do is unpack the archive and repackage them as a shared object (.so) 
ar -x mylib.a 
gcc -shared *.o -o mylib.so