';使所有';使用OpenCV 4.2.0在Ubuntu20.04上为Python3安装Caffe时出错:/usr/bin/ld找不到lpython3.6m或lboost Python3
我将按照本文安装caffe: 在运行';使所有';使用OpenCV 4.2.0在Ubuntu20.04上为Python3安装Caffe时出错:/usr/bin/ld找不到lpython3.6m或lboost Python3,python,python-3.x,linux,opencv,caffe,Python,Python 3.x,Linux,Opencv,Caffe,我将按照本文安装caffe: 在运行makeall并已安装libboostall-dev和libpython3后,会出现此错误 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:5
makeall
并已安装libboostall-dev
和libpython3
后,会出现此错误
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
我有一种感觉,我可能需要为文件创建一个软链接到路径或附加到我的路径、库路径或LD_库路径,但我实际上无法找到libpython.so或libboost文件,所以我不确定该怎么做。首先检查
python3
指向的python
的确切版本,以及您是否有python3.6m
python3 -V
python3.6m -V
两者都应返回您的Python 3.6m,否则请查找已安装的Python的确切版本或要使用的Python版本,并相应地在中进行更改
找到libboost:
locate boost | fgrep .so
如果安装了libboost-all-dev
,定位路径将是/usr/lib/x86\u 64-linux-gnu/
或/usr/lib64/
或/usr/lib/
或类似的东西
然后根据您获得的路径(假设您获得了/usr/lib/
),查找确切的libboost。因此:
ls /usr/lib/libboost_python*.so
如果返回列表包含libboost\u python3.so
,请检查LD\u LIBRARY\u PATH
是否包含指向该路径(例如,此处的路径为:/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\u LIBRARY\u PATH
包含指向的路径,那么
对于libboost
,但名称不同,请说它是libboost\u python-py37.so,相应地在Makefile中更改
# say it's python3.7
PYTHON_LIBRARIES ?= boost_python-py37 python3.7
然后做:
make all
这就是解决方案,谢谢!我用的是python3.8而不是3.6。Makefile.config中还有两行代码可以更改为正确的python版本。
make all