VMware+Ubuntu18.04+python3.6+caffe安装错误解决方法

一、出现fatal error: pyconfig.h: 没有那个文件或目录

 1 PROTOC src/caffe/proto/caffe.proto
 2 CXX .build_release/src/caffe/proto/caffe.pb.cc
 3 CXX src/caffe/solver.cpp
 4 CXX src/caffe/internal_thread.cpp
 5 CXX src/caffe/parallel.cpp
 6 CXX src/caffe/layer_factory.cpp
 7 In file included from /usr/include/boost/python/detail/prefix.hpp:13:0,
 8                  from /usr/include/boost/python/args.hpp:8,
 9                  from /usr/include/boost/python.hpp:11,
10                  from src/caffe/layer_factory.cpp:4:
11 /usr/include/boost/python/detail/wrap_python.hpp:50:11: fatal error: pyconfig.h: 没有那个文件或目录
12  # include <pyconfig.h>
13            ^~~~~~~~~~~~
14 compilation terminated.
15 Makefile:591: recipe for target '.build_release/src/caffe/layer_factory.o' failed
16 make: *** [.build_release/src/caffe/layer_factory.o] Error 1

  问题:在于安装python3.6时没有安装它的头文件。

  解决方法:终端输入sudo apt-get install python3.6-dev命令安装解决。

二、使用make all编译时出现以下问题

/usr/bin/ld: 找不到 -lboost_system
/usr/bin/ld: 找不到 -lboost_filesystem
/usr/bin/ld: 找不到 -lboost_thread
/usr/bin/ld: 找不到 -lboost_python3
collect2: error: ld returned 1 exit status
Makefile:582: recipe for target '.build_release/lib/libcaffe.so.1.0.0' failed
make: *** [.build_release/lib/libcaffe.so.1.0.0] Error 1

  问题:/usr/bin/ld: 找不到 -lboost_system。

  解决方法:使用命令locate libboost_system.so,若出现/usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1提示,使用sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 /usr/lib/libboost_system.so命令即可解决。

       /usr/bin/ld: 找不到 -lboost_filesystem、/usr/bin/ld: 找不到 -lboost_thread、/usr/bin/ld: 找不到 -lboost_thread同理。

  问题:/usr/bin/ld: 找不到 -lboost_python3。

  原因:在caffe编译配置文件Makefile.config里面的PYTHON_LIBRARIES := boost_python3 python3.6m 一行中,找不到boost_python3造成的。

  解决方法:①、使用的是Python3.5,进入/usr/lib/x86_64-linux-gnu/ 下,查看有没有libboost_python-py3.5.so,如果有链接一下就可以用sudo ln -s libboost_python-py3.5.so libboost_python3.so命令即可。

       ②、使用的是Python3.6,发现是没有libboost_python-py3.6.so 文件,需要编一个。下载 boost_1_67_0.tar.gz:

# 下载boost_1_67_0.tar.gz
wget http://sourceforge.net/projects/boost/files/boost/1.67.0/boost_1_67_0.tar.gz
# 进入文件夹
cd boost_1_67_0/
# 生成 .so 文件
./bootstrap.sh --with-libraries=python --with-toolset=gcc
./b2 --with-python include="/usr/include/python3.6m"
# 安装文件

  生成了 libboost_python3.6.so 等文件:

  链接文件

sudo ln -s libboost_python36.so libboost_python3.so
sudo ln -s libboost_python36.a libboost_python3.a
 
sudo cp /usr/local/lib/libboost_python36.a /usr/lib/x86_64-linux-gnu/libboost_python-py36.a
sudo cp /usr/local/lib/libboost_python36.so /usr/lib/x86_64-linux-gnu/libboost_python3.so

 

posted @ 2020-07-31 20:59  嗨_放飞梦想  阅读(651)  评论(0编辑  收藏  举报