2013-12-08 5 views
25

Ich habe gdb normalerweise bis diese Woche benutzt. Jetzt läuft gdb Ich sehe:dyld: Bibliothek nicht geladen, Grund: Bild nicht gefunden

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

Wie es zu beheben?

ich habe:

  • OSX 10.9
  • GNU gdb (GDB) 7.6 installiert mit MacPorts

P. S.

Ich habe gdb und Xcode neu installiert. Das hilft nicht.

Ich sehe viele Fragen über digitale Probleme, aber offensichtlich fehlt mir die Erfahrung mit Bibliotheken auf OSX, und sie scheinen für mich nutzlos zu sein.

Zum Beispiel zu diesem Thema: dyld issues library not loaded Aber wie Bibliothek erneut herunterladen?

Oder dieses Thema: Dyld: Library not loaded Aber wie finden Sie Installationsname? Was ist @rpath?

Antwort

6

Wie ich es fest:

  1. libCore.so ist eine Bibliothek von ROOT framework, die MyProg Anwendungen.
  2. Wenn ich richtig verstehe, bedeutet die Nachricht Library not loaded: @rpath/libCore.so Referenced from: /Volumes/MyProg Reason: image not found, dass Linker die Bibliothek gefunden, aber nicht verwenden kann.
  3. Root verwendet während der Installation standardmäßig clang. In der Zwischenzeit wie ich gcc und MyProg verwendet gcc.
  4. I Wurzel mit gcc Compiler neu installiert haben:

    configure --with-CXX = g ++ --with-cc = gcc --with-ld = g ++

  5. I MyProg rekompiliert haben.

und jetzt kann ich es mit gdb debuggen.

1

können Sie mehr Informationen zu rpath finden Sie hier: link

So müssen Sie den Pfad zu Ihrem libCore.so zeigen, aber ehrlich gesagt habe ich nicht mit dieser Bibliothek konfrontiert, damit ich weiß nicht, wo es sich befindet .

Sie können auch diese Antwort überprüfen, um zu verstehen, was es rpath ist: answer

+0

ich diesen Link sah. Aber es fühlt sich an, als würde es etwas für XCode-Entwickler beschreiben und ich vermisse sehr grundlegende Dinge. Der Link beantwortet nicht die Frage, wie man den Wert von @rpath findet ... Ich sehe, dass ich Wert in einigen Fenstern finden kann, die Target Info genannt werden, aber ich habe nicht Idee, wie man diese Fenster findet ..... – klm123

+0

Ich habe hat einen neuen Link in der Antwort hinzugefügt, vielleicht wird es für dich nützlich sein. Bitte überprüfen Sie die Antwort. –

+0

ich sehe ... danke. – klm123

28

Ich löste dieses Problem mit "Embedded Binaries" in den allgemeinen Projekteinstellungen.

+0

löste es ... thx !!! – Georg

+0

ja das hat mit Carthage funktioniert. Die Karthago-Anweisungen (Stand vom 23.05.2015) geben an, dass sie zu verknüpften Bibliotheken hinzugefügt werden sollen - aber ich habe das gelöscht und über eingebettete Binärdateien hinzugefügt. Es erschien dann (allein) in verbundenen Bibliotheken. Jetzt funktioniert alles. –

9

Ich habe dieses Problem gelöst, indem die folgenden Einstellungen zu ändern

Zum Projekt Your_Target- Einstellung> Allgemein-> Embedded Binaries-> auf + Schaltfläche klicken und Ihre Bibliothek hinzufügen hier

+0

Das hat für mich funktioniert ... – commando24