Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1752 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  pb pour compiler des lib dynamiques sous linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb pour compiler des lib dynamiques sous linux

n°353158
hellbilly
free smile
Posté le 04-04-2003 à 17:07:28  profilanswer
 

salut,
 
pour compiler ma lib statique je fais :
ar rc libxx.a file1.o file2.o ...
 
et pour l'avoir en version dynamique :
g++ -shared -o libxx.so libxx.a
 
Mais le pb c'est que la libxx.so ne fait que quelques octets et lors de l'edition de lien avec l'application il ne trouve pas mes fonctions. C'est quoi qui va pas ??
 
merci

mood
Publicité
Posté le 04-04-2003 à 17:07:28  profilanswer
 

n°353168
Jar Jar
Intaigriste
Posté le 04-04-2003 à 17:12:04  profilanswer
 

Déjà il faut que tu recompiles tes fichiers c en -fPIC, en générant des .sho au lieu des .o. Ensuite, il faut utiliser ces .sho pour faire la lib, et pas le .a. Et puis n'oublie pas de mettre un SONAME, ça peut toujours servir.
 
Ensuite, tu fais un gcc -shared -o libxx.so.3.4 -Wl,-soname,libxx.so.3 file1.sho file2.sho ... -lmachin -lbidule
 
(pas oublier de lier aux libs dont tu dépends et uniquement à elles)


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°354374
hellbilly
free smile
Posté le 07-04-2003 à 10:08:37  profilanswer
 

Jar Jar a écrit :

Déjà il faut que tu recompiles tes fichiers c en -fPIC, en générant des .sho au lieu des .o. Ensuite, il faut utiliser ces .sho pour faire la lib, et pas le .a. Et puis n'oublie pas de mettre un SONAME, ça peut toujours servir.
 
Ensuite, tu fais un gcc -shared -o libxx.so.3.4 -Wl,-soname,libxx.so.3 file1.sho file2.sho ... -lmachin -lbidule
 
(pas oublier de lier aux libs dont tu dépends et uniquement à elles)


 
ok merci bcp.
 
Seulement, tous les makefile des libs de l'appli construisent la lib .so à partir de la lib .a. Je comprends pas comment ca peu marcher : quand je recompile, mes .so sont foireux... alors comment ils ont fait ?? Enfin pas grave, je me refaire tous les Makefile  :cry:  

n°355239
Jar Jar
Intaigriste
Posté le 07-04-2003 à 22:12:30  profilanswer
 

hellbilly a écrit :

Seulement, tous les makefile des libs de l'appli construisent la lib .so à partir de la lib .a. Je comprends pas comment ca peu marcher : quand je recompile, mes .so sont foireux... alors comment ils ont fait ?? Enfin pas grave, je me refaire tous les Makefile  :cry:

C'est un boulet qui a fait ça.
 
En fait, on trouve assez souvent des libs mal foutues, j'en ai même vu en version stable sans SONAME...
 
C'est pour ça qu'on a fait libtool, mais il vaut quand même vraiment mieux éviter cette bouse.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  pb pour compiler des lib dynamiques sous linux

 

Sujets relatifs
[C] Erreur Sockets sous Linux : Socket operation or non-socketProgrammer en C/C++ sous linux
[Java + Linux] Il me manque des fichiers :(Envoyé un Mail en C sous linux
Resolu[c/Linux]Comment recupérer les infos d'un pipe sans perte de donProgrammation GTK Linux , problème de #include
pilote periph linuxprobleme programmation driver linux de carte E/S
Linux, ports série et pb de synchronisation (pour experts)MySQL et Linux : déplacer le repertoire de stockage des bases ?
Plus de sujets relatifs à : pb pour compiler des lib dynamiques sous linux


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)