当我试图在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 '在那里,它不再介意了。不幸的是,它会抱怨找不到下一个增强库。

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


当前回答

当我试图使用rvm安装ruby 2.3.1时,我得到了这个错误。它首先告诉我运行brew update,我这样做了,然后当我尝试运行rvm install ruby-2.3.1时,我在这个SO问题中收到了错误。

解决办法是首先运行brew升级,显然根据这个superuser.com的问题,你需要同时进行brew更新&& brew升级。完成这些之后,我终于可以安装ruby 2.3.1了。

其他回答

对于那些因为试图使用Xcode 6.3.1将第三方框架链接到他们的项目而访问这个页面的人来说,我遇到的问题是,这个库是用一个旧版本的编译器创建的,使用的是不同版本的swift。解决这个问题的唯一方法就是重新构建框架。

你可能会得到这个的另一个原因是在苹果的技术文档中。

如果你正在构建一个不使用Swift的应用程序,但嵌入了框架之类的内容,Xcode将不包括这些库在你的应用程序中。因此,你的应用程序将在启动时崩溃,并出现如下错误消息:

将嵌入式内容包含Swift代码(EMBEDDED_CONTENT_CONTAINS_SWIFT)构建设置设置为YES

这里是完整的苹果文档的链接

对于我的框架,我使用的是作为git子模块添加的Xcode子项目。

我相信我得到这个错误,因为我正在与一个不同的签名团队签署框架,而不是我的主应用程序。忘记切换到框架)

解决方案是不在框架项目内签名。相反,在主应用程序的目标>通用>框架,库和嵌入式内容部分,通过Embed & sign对框架进行签名。

如果我选择不嵌入或嵌入没有签名,我反而得到错误:

框架不能在使用库验证的进程中使用:映射文件没有cdhash,完全unsigned?代码至少要有特别签名。

Install_name_tool -add_rpath new_path可执行文件 Install_name_tool -delete_rpath old_path可执行文件

Xcode 11.1 & Swift 5.1

快速修复

首先确保外部添加的库有选项embed被选择在General Tab, embdbbinaries。

如果还是不行…

出现这种情况是因为存在不同的、不匹配的库版本。

更新Pods

pod update

重要提示:检查所有库都包含在构建设置->库和框架列表中,并且您已经在构建中嵌入了选项

工作非常棒

当我试图使用rvm安装ruby 2.3.1时,我得到了这个错误。它首先告诉我运行brew update,我这样做了,然后当我尝试运行rvm install ruby-2.3.1时,我在这个SO问题中收到了错误。

解决办法是首先运行brew升级,显然根据这个superuser.com的问题,你需要同时进行brew更新&& brew升级。完成这些之后,我终于可以安装ruby 2.3.1了。