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

Macos dyld:未加载库,原因:未找到图像,macos,gdb,shared-libraries,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 附言 我已经重新安装了gdb和X

直到本周之前,我一直使用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
附言

我已经重新安装了gdb和Xcode。这没有帮助

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

例如,本主题: 但如何再次下载库

或者这个话题:
但是如何找到安装名呢?什么是
@rpath

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

因此,您需要指向libCore.So的路径,但老实说,我没有遇到过这个库,所以我不知道它位于何处

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

我是如何修复它的:

  • libCore.so
    是一个库,由
    MyProg
    使用
  • 如果我理解正确,则消息
    Library not loaded:@rpath/libCore.so reference from:/Volumes/MyProg原因:image not found
    表示链接器找到了库,但无法使用它
  • Root,在安装过程中默认使用clang。同时,因为我更喜欢gcc,
    MyProg
    使用gcc
  • 我已使用gcc编译器重新安装了root:

    ./configure——使用cxx=g++——使用cc=gcc——使用ld=g++

  • 我重新编译了
    MyProg


  • 现在我可以用gdb调试了。

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

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


    转到Project Setting Your_Target->General->Embedded Binaries->单击+按钮并在此处添加库

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

    在您的Podfile中,添加use_框架!像这样在你的目标线之后-

    target 'YourAppName' do
      use_frameworks!
    

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

    我看到了这个链接。但它给XCode开发人员的感觉是,它描述了一些东西,我错过了非常基本的东西。该链接没有回答如何找到@rpath的值的问题。。。我知道我可以在一些名为Target Info的窗口中找到值,但我不知道如何找到这些窗口……我已经添加了新的链接来回答这个问题,也许它对您有用。请检查答案。这个答案有用吗?我想如果不是,你需要等待一些已经面临同样问题的程序员,比如你的案例。@kim123或者你可以为这个问题掷赏金,好的,你能回答你的问题吗,因为这对有同样问题的人会有帮助。是的,这与迦太基合作过。《迦太基指令》(截至2015年5月23日)规定要添加到链接库中,但我删除了该指令,并通过嵌入的二进制文件添加了该指令。然后它(自己)出现在链接库中。现在所有的工作。尝试这一个,但不工作如何可能删除未找到的图像错误