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

  FORUM HardWare.fr
  Programmation
  C

  gcc, édition de lien

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gcc, édition de lien

n°1577127
Minada
PSN : minada69
Posté le 20-06-2007 à 11:07:21  profilanswer
 

Bonjour,
 
Je cherche actuellement à réaliser une librairie dynamique (.so). J'ai donc écrit le code, qui utilise lui plusieurs librairies statiques (.a).
Je fais une édition de liens classique (-lMALIB etc ...) et j'obtiens donc l'exécutable de mon programme de test, qui me dit quand je le lance qu'il ne trouve pas une des fonctions contenue dans une librairie statique.
 
J'ai réussi à résoudre le problème en supprimant les liens avec les librairies statiques et en créant ma librairie statique avec les .o ayant servi à générer les librairies statiques.
 
Mais pour une optique de distribution, cette tâche ne s'avère pas pratique, je préfèrerais pouvoir faire la même chose sans passer par les .o, c'est à dire inclure directement les .a dans mon .so. Quelqu'un aurait-il une idée ?

mood
Publicité
Posté le 20-06-2007 à 11:07:21  profilanswer
 

n°1577289
olivthill
Posté le 20-06-2007 à 14:18:21  profilanswer
 

Les bibliothèques ".so" sont avant tout des shared libraries. Le terme de bibliothèque dynamique s'applique plutôt aux ".dll".
 
Faire une recherche internet avec "gcc shared library".
Plusieurs pages donnent de bonnes explications, par exemple : http://www.adp-gmbh.ch/cpp/gcc/create_lib.html , http://www.ibm.com/developerworks/library/l-shobj/ , http://developer.apple.com/documen [...] tions.html
 
Il faut aussi faire attention au piège classique du débutant, mais peut-être pas pour vous, qui est que lors du link, derrière "-l", il faut indiquer le nom de la bibliothèque sans les trois premières lettres "lib", par exemple "-ljpeg" pour linker avec la bibliothèque "libjpeg.a".


Message édité par olivthill le 20-06-2007 à 14:21:15
n°1577519
Minada
PSN : minada69
Posté le 21-06-2007 à 09:48:49  profilanswer
 

J'ai bien link correctement, c'est pour ça que l'erreur que j'obtiens m'étonne :(
 
Merci pour les liens, je vais voir ce que ça donne :)

n°1577526
Minada
PSN : minada69
Posté le 21-06-2007 à 10:10:15  profilanswer
 

Hum rien trouvé de plus pour créer ma librairie shared sans avoir à relink les .o plutot qu'utiliser les librairies statiques :(

n°1577532
_darkalt3_
Proctopathe
Posté le 21-06-2007 à 10:19:04  profilanswer
 

c'est quoi l'erreur ?


---------------
Töp of the plöp
n°1577544
Minada
PSN : minada69
Posté le 21-06-2007 à 10:33:58  profilanswer
 

J'ai pas l'erreur sous les yeux, mais j'utilise une librairie statique .a comprenant plusieurs fonctions, qui sont réutilisées par les fonctions de la librairie partagée .so.
 
La compilation et l'édition de liens se passent bien, mais lorsque je lance mon programme de test utilisant la librairie .so il me dit que les symboles de la librairie .a ne sont pas définis.


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

  gcc, édition de lien

 

Sujets relatifs
UBUNTU: Soucis Oracle 10g Express Edition aprés installationEdition d'offset pour string table
[Flash]>> placer un lien (bouton) dans un composant accordionSupprimer le cadre de sélection autour d'une image lien.
pb d edition de lien staticErreur à l'édition de lien pour aws-net-ssl-certificate.adb [sésolut]
[C] allegro et édition de lienEdition de lien JNI
[CVI-NiDaq] Probleme d'edition de lien ......[C] Probleme d'édition de lien
Plus de sujets relatifs à : gcc, édition de lien


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR