【问题标题】:ld: library not found for -lboost_pythonld:找不到 -lboost_python 的库
【发布时间】:2014-10-04 02:33:47
【问题描述】:

我使用 brew install --build-from-source --with-python --fresh -vd boost 安装 boost。然而,当我在 Caffe 项目中运行 make pycaffe 时,我得到了这个错误:ld: library not found for -lboost_python。如何安装该库? find / -name libboost_python* 什么也没出现。

【问题讨论】:

    标签: python boost homebrew boost-python


    【解决方案1】:

    运行命令brew install boost-python 这将下载、编译和安装支持boost-python 的boost 包。 graphicsmagick-engine pip 包需要 boost-python,我遇到了同样的问题。为了让您了解发生了什么,这是命令的输出:

    ==> Downloading https://downloads.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.bz2
    ######################################################################## 100.0%
    ==> ./bootstrap.sh --prefix=/usr/local/Cellar/boost-python/1.57.0 --libdir=/usr/local/Cellar/boost-python/1.57.0/lib --with-libraries=python --with-python=python --with-python-root=/System/Library/Frameworks/Python.framework/Versions/2.7
    ==> ./b2 --build-dir=build-python --stagedir=stage-python python=2.7 --prefix=/usr/local/Cellar/boost-python/1.57.0 --libdir=/usr/local/Cellar/boost-python/1.57.0/lib -d2 -j8 --layout=tagged --user-config=user-config.jam threading=multi,s
    

    您也可以下载、编译和符号链接 boost 包(这是我最初所做的),但如果默认路径适合您,这会简单得多。

    【讨论】:

    • 对于python3,需要运行brew install boost-python --with-python3,然后使用-lboost_python3构建
    • @ronen,但是如果-lboost_python3 not found 呢?如何解决它,我遇到了这个问题。
    • 尝试使用brew install boost-python3 - 语法可能已更改。
    【解决方案2】:

    事实证明 boost 1.56 似乎与 NVCC 存在问题,因此没有安装 boost_python 库文件。使用 boost 1.55 安装有效。我用过:

    git checkout a252214 /usr/local/Library/Formula/boost.rb
    brew install --build-from-source --with-python --fresh -vd boost
    

    感谢this thread

    【讨论】:

    • 我在 OS X 10.9.5 上安装 caffe 时遇到了很多麻烦。您是否使用修改后的 brew 公式安装它?似乎每次尝试编译 caffe 时都会遇到不同的错误。我无法找到文件或 BLAS(即使 Mac 通过 Accelerate 安装了它)。有什么建议吗?
    • 是的,请确保执行brew edit 步骤。严格遵循 Caffe 说明。我安装了 OpenBLAS。
    • 虽然 Caffe 编译成功,但当我尝试运行 Caffe 时仍然得到Fatal Python error: PyThreadState_Get: no current thread。如果你也这样做,请告诉我! Homebrew 对这个问题的建议似乎没有帮助:github.com/Homebrew/homebrew/wiki/Common-Issues。在发布问题之前,我正在处理 brew doctor 问题。
    • 使用 boost 1.55 后,它编译但不会执行,就像你发现的那样。你最后做了什么?
    【解决方案3】:

    对我来说,boost-python 库路径中没有这样的libboost_python37.dylib

    $ ls /usr/local/Cellar/boost-python3/1.67.0_1/lib
    libboost_numpy37-mt.a      libboost_numpy37.a         libboost_python37-mt.dylib libboost_python37.dylib
    libboost_numpy37-mt.dylib  libboost_numpy37.dylib     libboost_python37-mt.a     libboost_python37.a
    

    所以创建一个软链接

    $ sudo ln -s libboost_python37.dylib libboost_python3.dylib
    

    这个问题已经解决了。

    类似问题:ld: library not found for -lboost_python on MacOS

    【讨论】:

      猜你喜欢
      • 2019-01-25
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 2021-10-24
      • 2017-03-31
      • 1970-01-01
      • 2011-09-26
      • 2018-03-10
      相关资源
      最近更新 更多