当我试图在Mac OS X中运行一个可执行文件时,我得到以下错误

dyld: Library not loaded: libboost_atomic.dylib
  Referenced from: /Users/"Directory my executable is in"
  Reason: image not found
Trace/BPT trap:5

我已经安装了boost库,它们位于/opt/local/lib中。我认为这个问题与可执行文件只在它所在的目录中查找有关,因为当我粘贴'libboost_atomic。Dylib '在那里,它不再介意了。不幸的是,它会抱怨找不到下一个增强库。

有没有简单的方法来解决这个问题?


当前回答

对于那些仍然有这个问题的人:

这是苹果方面一直存在的问题,对我来说有效的方法是升级到ios 13.4(测试版)。装好后效果很好。

其他回答

快速修复

删除pod(其名称在错误中)通过在Podfile中注释它,如#Podname 运行pod安装 取消注释之前注释过的pod 再次运行pod install。

这对我来说很有效,所以分享它很容易。

对于那些仍然有这个问题的人:

这是苹果方面一直存在的问题,对我来说有效的方法是升级到ios 13.4(测试版)。装好后效果很好。

让构建阶段的框架成为可选框架对我来说很有用。

在Xcode ->目标->构建阶段->链接二进制与库-> 确保新添加的框架(如果有的话)被标记为可选

修正:这种方法清除了这为我轻松…

我的CLI工具触发了同样的问题(即netdiscover),正在寻找:

/ usr / local / opt / libnet / lib / libnet。1 . dylib

当我搜索libnet.1的时候。Dylib, ls返回一个文件,但是是一个较新的版本:libnet.9.dylib

遵循本文中提出的方法,如何修复' Dyld:库未加载'在MacOS上的错误,我能够通过简单地创建一个符号链接指针,指向该工具正在寻找的文件(即,libnet.1.dylib),到我的系统上列出的新文件版本(即,libnet.9.dylib),…

在s /usr/地方/opt/李勃/李勃。9dylib / usr / local / opt / libnet / lib / libnet。1 . dylib

... 现在当我运行该工具时,它会毫无怨言地找到所需的依赖项!,:)

--AA

参考:

在我们的例子中,它是一个基于Xcode 11.5构建的iOS应用,使用cocoapods(如果你愿意,也可以是cocoapods-binary)。

我们看到了这样的崩溃:

dyld: Library not loaded: @rpath/PINOperation.framework/PINOperation
  Referenced from: /private/var/containers/Bundle/Application/4C5F5E4C-8B71-4351-A0AB-C20333544569/Tellus.app/Frameworks/PINRemoteImage.framework/PINRemoteImage
  Reason: image not found

原来我必须删除pod缓存并重新运行pod安装,所以Xcode会指出这个差异: