dyld: Library not loaded, Reason: image not found

坚强是说给别人听的谎言 提交于 2019-11-27 14:24:21

问题


I used gdb normally until this week. Now running gdb I see:

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

How to fix it?

I have:

  • OSX 10.9
  • GNU gdb (GDB) 7.6 installed with MacPorts

P.S.

I have reinstalled gdb and Xcode. This does not help.

I see a lot of questions about dyld issues, but obviously I lack experience with libraries on OSX, and they appears to be useless for me.

For example this topic: dyld issues library not loaded But how to download library again?

Or this topic: Dyld: Library not loaded But how to find out install name? What is @rpath?


回答1:


I solved this issue with "Embedded Binaries" in the General project settings.




回答2:


i have solved this issue by changing the following settings

Go to Project Setting Your_Target->General->Embedded Binaries-> Click on + button and add your library here




回答3:


How I fixed it:

  1. libCore.so is a library from ROOT framework, which MyProg uses.
  2. If I understand correctly, the message Library not loaded: @rpath/libCore.so Referenced from: /Volumes/MyProg Reason: image not found means that linker found the library, but can't use it.
  3. Root, during installation uses clang by default. Meanwhile as I prefer gcc and MyProg uses gcc.
  4. I have reinstalled root with gcc compiler:

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

  5. I have recompiled MyProg.

and now I can debug it with gdb.




回答4:


You can find more information about rpath here: link

So you need to point the path to your libCore.so, but honestly I have not faced with this library so I don't know where is it located.

You can check also this answer to understand what it is rpath: answer



来源:https://stackoverflow.com/questions/20455492/dyld-library-not-loaded-reason-image-not-found

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!