在带有适用于Python3的OpenCV 4.2.0的Ubuntu 20.04上安装Caffe时,出现“ make all”错误:/ usr / bin / ld无法找到lpython3.6m或lboost python3

白ij:

我下面这篇文章来安装朱古力:https://qengineering.eu/install-caffe-on-ubuntu-18.04-with-opencv-4.2.html运行后出现此错误make alllibboost-all-devlibpython3已安装。

LD -o .build_release/lib/libcaffe.so.1.0.0
/usr/bin/ld: cannot find -lboost_python3
/usr/bin/ld: cannot find -lpython3.6m
collect2: error: ld returned 1 exit status
make: *** [Makefile:596: .build_release/lib/libcaffe.so.1.0.0] Error 1

我有一种感觉,我可能需要为这些文件创建一个软链接,或者将其附加到我的PATH,LIBRARY_PATH或LD_LIBRARY_PATH中,但实际上无法找到libpython.so或libboost文件,因此我无法找到确定该怎么做。

Venkatesh Wadawadagi:

首先检查的准确版本pythonpython3指向你是否也有python3.6m

python3 -V 

python3.6m -V

两者都应返回您Python 3.6m,否则找出已安装的python的确切版本或您要使用的python版本,并在Makefile中进行相应更改

# say it's python3.7
PYTHON_LIBRARIES ?= boost_python3 python3.7

找到libboost:

locate boost | fgrep .so

如果libboost-all-dev已安装,则定位的路径将是/usr/lib/x86_64-linux-gnu/or /usr/lib64//usr/lib/or /usr/local/lib/或类似的东西。

然后根据您得到的路径(例如您得到/usr/lib/),查找确切的libboost.so:

ls /usr/lib/libboost_python*.so

如果返回列表包括libboost_python3.so,请检查是否LD_LIBRARY_PATH包括该路径(此处为ex:的路径/usr/lib),否则执行以下操作:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libboost/

您可以将其添加到您的~/.bashrc

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/libboost/' >> ~/.bashrc

如果LD_LIBRARY_PATH包含.sofor的路径libboost,但名称不同,则说它是libboost_python-py37.so,因此在Makefile中进行更改。

# say it's python3.7
PYTHON_LIBRARIES ?= boost_python-py37 python3.7

然后做:

make all

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章