web-dev-qa-db-fra.com

dyld: bibliothèque non chargée, raison: image non trouvée

J'ai utilisé gdb normalement jusqu'à cette semaine. Maintenant en cours d'exécution de gdb, je vois:

(gdb) r
Starting program: /Volumes/MyProg 
dyld: Library not loaded: @rpath/libCore.so
  Referenced from: /Volumes/MyProg
  Reason: image not found
(gdb) 

Comment le réparer?

J'ai:

  • OSX 10.9
  • GNU gdb (GDB) 7.6 installé avec MacPorts

P.S.

J'ai réinstallé gdb et Xcode. Cela n'aide pas.

Je vois beaucoup de questions sur les problèmes de dyld, mais évidemment je manque d'expérience avec les bibliothèques sur OSX, et elles semblent inutiles pour moi.

Par exemple, cette rubrique: la bibliothèque de problèmes de dyld n'est pas chargée Mais comment télécharger à nouveau la bibliothèque?

Ou ce sujet: Dyld: bibliothèque non chargée Mais comment trouver le nom d'installation? Quel est @rpath?

30
klm123

Comment je l'ai corrigé:

  1. libCore.so est une bibliothèque de ROOT framework , que MyProg utilise.
  2. Si je comprends bien, le message Library not loaded: @rpath/libCore.so Referenced from: /Volumes/MyProg Reason: image not found signifie que l'éditeur de liens a trouvé la bibliothèque, mais ne peut pas l'utiliser.
  3. Root, lors de l'installation utilise clang par défaut. Pendant ce temps, comme je préfère gcc et MyProg utilise gcc.
  4. J'ai réinstallé root avec le compilateur gcc:

    ./configure --with-cxx = g ++ --with-cc = gcc --with-ld = g ++

  5. J'ai recompilé MyProg.

et maintenant je peux le déboguer avec gdb.

6
klm123

J'ai résolu ce problème avec "Binaires intégrés" dans les paramètres généraux du projet.

29
Karsten

j'ai résolu ce problème en modifiant les paramètres suivants

Allez dans Project Setting Your_Target-> General-> Embedded Binaries-> Cliquez sur le bouton + et ajoutez votre bibliothèque ici

11
user5180348

Vous pouvez trouver plus d'informations sur rpath ici: link

Vous devez donc indiquer le chemin vers votre libCore.so, mais honnêtement, je n'ai pas fait face à cette bibliothèque, donc je ne sais pas où elle se trouve.

Vous pouvez également vérifier cette réponse pour comprendre de quoi il s'agit rpath: réponse

1
Matrosov Alexander