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

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


当前回答

这招对我很管用:

brew upgrade node

其他回答

这招对我很管用:

brew upgrade node

现在Xcode升级了他们的IDE,他们改变了一些功能。

它曾经被分成单独的部分,如上所示,“嵌入式二进制文件”和“链接框架和库”作为单独的部分。

现在,它是一个组合的部分,右边有关于应该嵌入什么的下拉列表。

一开始我很困惑,但现在完全说得通了。

我在这里试图运行一个我刚刚用CMake编译的程序。当我试图运行它时,它会抱怨说:

dyld: Library not loaded: libboost_system.dylib
  Referenced from: /Users/path/to/my/executable
  Reason: image not found

我绕过了这个问题,告诉CMake使用静态版本的Boost,而不是让它使用动态版本:

set(Boost_USE_STATIC_LIBS ON)

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

如果你使用Xcode 11以后:

进入“常规”选项卡,在“框架”、“库”和“嵌入式内容”部分中添加框架。

重要提示:默认情况下,它可能被标记为不嵌入,将其更改为嵌入而不签名,如图所示,你就可以开始了。

对于低于11的Xcode版本:

只需在嵌入式二进制文件部分中添加框架,就完成了。

干杯!