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

  FORUM HardWare.fr
  Programmation
  Divers

  Erreur dll runtime

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur dll runtime

n°2034883
snafu8
Posté le 09-11-2010 à 09:54:11  profilanswer
 

Salut à tous,
 
je cherche à recompiler une appli qui se linke contre un demi milliard de librairies dynamiques, la compilation et l'édition des liens se passent bien, par contre, ça chie dans la colle à l'exécution.  
 
Je code sous XCode, je vais mettre les équivalents en ligne de commandes.
 
Mon appli à besoin de libA.dylib (=.so) qui se trouve chez moi dans /opt/local/lib
 
Pour l'édition des liens, je rentre donc un truc comme ça :  
 

Code :
  1. ld -filelist[liste de mes .o] -L/path/lib1 -L/path/lib2 -L/opt/local/lib/ -l1 -l2 -lA


 
Le probleme arrive à l'exécution, je reçois un message
 

Code :
  1. Library not loaded /usr/lib/libA.dylib, reason : image not found


 
Sachant que aucune autre lib ne se trouve dans /usr/whatever, je ne comprends pas vraiment pourquoi ce con persiste à chercher une lib là où elle n'est pas. Si quelqu'un a une idée...

mood
Publicité
Posté le 09-11-2010 à 09:54:11  profilanswer
 

n°2034912
olivthill
Posté le 09-11-2010 à 11:27:45  profilanswer
 

Il est étrange que libA.dylib, soit une librairie de type "so", puisque son extension est "dylib".
 
L'édition des liens se fait avec les extensions par défaut. Par exmple -lA indique que le programme attend libA.so. Si cela passe sans erreur, c'est peut-être parce que vous auriez un libA.so en plus de votre libA.dylib.
 
Il doit y avoir une subtilité avec ce genre de librairie (que je ne connais pas personnellement).
 
D'où vient votre makefile ? Est-ce que vous l'avez entièrement recréé ? Disposez vous encore du makefile d'origine ?
 
Le chargement des bibliothèque dynamique se fait "dynamiquement", comme son nom l'indique. Il doit y avoir une ligne dans le programme contenant quelque chose du genre "LoadLibrary("/usr/lib/libA.dylib" );". Mais cela doit échouer, ce qui fait que le programme émet son message.
 
Avez-vous un fichier libA.dylib, quelque part ?
 
Par expérience, ce genre de problème vient soit d'un fichier manquant à l'exécution, soit de variables d'environnement pour les chemins qui ne sont pas définies ou mal définies.

n°2034978
snafu8
Posté le 09-11-2010 à 14:32:08  profilanswer
 

dylib est l'extension des librairies dynamiques sous mac os, comme la plupart des gens qui codent avec gcc le font sous linux, j'ai indiqué l'équivalent.
 
Comme je l'ai écrit dans mon premier post, libA.dylib est bien présent, dans /opt/local/. Ce qui me perturbe, c'est que le chemin /usr/lib/ n'est hardcodé nulle part (ni dans le code, ni dans les makefiles).
 
J'ai réussi à le tromper en mettant un alias vers /opt/local/lib/libA.dylib dans /usr/lib comme ça il le trouve, mais bon c'est un peu crade.


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

  Erreur dll runtime

 

Sujets relatifs
[PostrgreSQL] trigger, erreur de symtaxeMessage d'erreur tableau
[C#] Erreur lors de l'ouverture d'un fichierlangage C, message d'erreur
Erreur 6 Dépassement de capacitéErreur 13 Incompatibilité de type
Modifier d'erreur 404 par défautconnect qui échoue de façon aléatoire
[RESOLU]signification de cette erreur : #Nom ?limites VBA_excel_2007?? ( Erreur 7_Mémoire Insuffisante)
Plus de sujets relatifs à : Erreur dll runtime


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