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

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


当前回答

我在使用asdf切换python版本后得到了这个错误。当你激活virtualenv时,它会感到困惑。

相反,像这样重新创建virtualenv

$ rm -rf venv
$ python -m venv venv

这一次当你激活virtualenv时,它会找到正确的python。

其他回答

我通过重新安装Homebrew解决了这个问题

卸载

ruby -e "$(curl - ssl https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

安装

ruby / usr / bin / e,“美元(卷毛-fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

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

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

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

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

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

我面临的应用程序崩溃的问题引用SIGABRT错误在线程。崩溃的概述是没有加载dyld库和图像没有找到类似的东西。

这是在Xcode 9.3中看到的。我发现的原因是Xcode没有动态地拾取库,所以我必须手动这样做,这解决了我的崩溃问题。

请遵循以下步骤:

进入构建阶段 点击顶部的“+”按钮并选择“新建复制文件阶段” 选择目标为框架,点击下面的“+”按钮添加文件。 选择下面添加其他,点击CMD+SHIFT+G,粘贴下面的路径, /应用程序/ xcode /内容/开发/工具链/ XcodeDefault.xctoolchain / usr / lib /快速/ iphoneos

现在你将能够看到一些swift dylib,选择所有扩展名为.dylib的swift库,然后点击打开。

这些将被添加到app的general选项卡的嵌入式二进制文件中。

在project文件夹中创建一个新组,并添加所有这些库。

现在运行你的应用程序。

您可以对可执行文件使用otool命令和-L选项,这将显示可执行文件期望这些库的位置。

如果需要更改这些库的路径,请使用install_name_tool命令,该命令允许您设置库的路径。

这应该可以解决问题

brew update
brew upgrade
brew cleanup