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

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


当前回答

最好的一个是上面回答的,首先检查输出是什么

otool -L

如果不正确,就按下面的步骤做

set_target_properties(
    MyTarget
    PROPERTIES
    XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS
    "@executable_path/Frameworks @loader_path/Frameworks"
)

And

set_target_properties(
        MyTarget
        PROPERTIES
        XCODE_ATTRIBUTE_DYLIB_INSTALL_NAME_BASE 
        "@rpath"

其他回答

这应该可以解决问题

brew update
brew upgrade
brew cleanup

我忘记添加use_frameworks了!在我的播客里。我把它加回来,它起作用了。

这招对我很管用:

brew upgrade node

我在这里试图运行一个我刚刚用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)

选择您的项目 瞄准目标 转到框架、库和嵌入式内容 单击+图标 你应该得到一个提示=>搜索你错过的库;-我的例子是OpenSSL-。 选择它并添加它。 清理项目。 重建。