编译Caffe / PyCaffe时出错

时间:2017-06-16 14:41:27

标签: python caffe pycaffe

我正在尝试使用Cuda 7.0和Python 2.7编译旧版本的Caffe。问题是我一直收到这个错误:

LD -o .build_release/lib/libcaffe.so
/usr/bin/ld: cannot find -lboost_python-py35
/usr/bin/ld: cannot find -lpython3.5m
collect2: error: ld returned 1 exit status
make: *** [.build_release/lib/libcaffe.so] Error 1

Makefile.config与示例几乎相同,只是我使用的是OpenCV_Version:= 3

我用谷歌搜索了,我不知道为什么汇编正在寻找python35 / 3.5的东西

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

你有一个大概的想法:你在某种程度上混合了环境中的版本。我从那个角度攻击它:看看包含了什么。在您的环境中搜索“35”和“3.5”引用:

env | egrep "35|3.5"

特别要看LD_LIBRARY_PATH和PATH。还要检查可疑文件的预期包。例如,

ldd .build_release/lib/libcaffe.so

您可能会发现需要从环境中删除Python3.5引用并重建早期的包。

答案 1 :(得分:0)

我认为您可能遇到以下问题。

注意:如果更新了Ubuntu操作系统,可能需要更新和重新编译Python层,因为Python模块不再有效。在这种情况下,再次执行此步骤。

for req in $(cat requirements.txt); do pip install $req; done

如有任何问题,请尝试:

for req in $(cat requirements.txt); do sudo -H pip install $req --upgrade; done
  

默认的Python版本是2.您可以编辑Makefile.conf   启用Python 3,但在链接阶段会失败:   在Ubuntu 16.04上找不到 boost_python3 。相反,这个文件   应 /usr/lib/x86_64-linux-gnu/libboost_python-py35.so.1.58.0。   这需要进一步测试。

检查link以获取更多信息。