我正在尝试用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除了我使用的是OpenCV_Version := 3之外,Makefile.config与示例几乎相同
我用谷歌搜索了一下,我不知道为什么编译程序要查找python35/3.5
有什么想法吗?
发布于 2017-06-17 00:44:12
你有一个大概的想法:你在环境中以某种方式混合了不同的版本。我会从这个角度来攻击它:看看其中包含了什么。在您的环境中搜索"35“和"3.5”引用:
env | egrep "35|3.5"特别是看看LD_LIBRARY_PATH和PATH。还要检查哪些包应该包含可疑文件。例如,
ldd .build_release/lib/libcaffe.so您可能会发现需要从环境中删除Python3.5引用并重新构建早期的包。
发布于 2017-06-20 21:40:36
我认为你可能有以下问题。
注意:如果更新了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,但是在链接阶段会失败:boost_python3在Ubuntu16.04上找不到。相反,这个文件应该是/usr/lib/x86_64-linux-gnu/libboost_python-py35.so.1.58.0.,这需要进一步的测试。
有关更多信息,请查看link。
https://stackoverflow.com/questions/44592036
复制相似问题