dyld:未加载库,原因:未找到图像

时间:2013-12-08 16:05:21

标签: macos gdb shared-libraries

直到本周我才正常使用gdb。现在运行gdb我看到了:

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

如何解决?

我有:

  • OSX 10.9
  • 随MacPorts一起安装的GNU gdb(GDB)7.6

P.S。

我重新安装了gdb和Xcode。这没有用。

我看到很多关于dyld问题的问题,但显然我缺乏OSX上的库的经验,而且它们对我来说似乎毫无用处。

例如,此主题:dyld issues library not loaded 但是如何再次下载库?

或者这个话题:Dyld: Library not loaded 但是如何找出安装名称?什么是@rpath

5 个答案:

答案 0 :(得分:29)

我用"嵌入式二进制文件"解决了这个问题。在常规项目设置中。

答案 1 :(得分:10)

我通过更改以下设置解决了这个问题

转到项目设置Your_Target-> General-> Embedded Binaries->单击+按钮并在此处添加库

答案 2 :(得分:6)

我如何解决它:

  1. libCore.so是来自ROOT frameworkMyProg使用的库。
  2. 如果我理解正确,消息Library not loaded: @rpath/libCore.so Referenced from: /Volumes/MyProg Reason: image not found表示链接器找到了库,但无法使用它。
  3. Root,在安装过程中默认使用clang。同时我更喜欢gcc而MyProg使用gcc。
  4. 我已经用gcc编译器重新安装了root:

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

  5. 我已重新编译MyProg

  6. 现在我可以用gdb调试它。

答案 3 :(得分:1)

您可以在此处找到有关rpath的更多信息:link

所以你需要指向你的libCore.so的路径,但老实说,我没有面对这个库,所以我不知道它在哪里。

您也可以查看此答案以了解它是什么rpath:answer

答案 4 :(得分:0)

对于Xcode 11或更高版本,如果您使用Cocoapods,还有另一种更简单的解决方案对我有用。

在您的Podfile中,添加use_frameworks!在您的目标行之后-

target 'YourAppName' do
  use_frameworks!

基本上,它将所有吊舱作为框架添加到框架文件夹中。