本文大致是抒情文章,记录这次喝咖啡的各种网上搜资料的艰辛之路,也会大致讲一些安装时候报错的应对,Kali与Ubuntu有些相似之处,所以Ubuntu的安装过程同样适用于Kali,但是Kali由于侧重于渗透,比起Ubuntu少了一些必要的包,可能会更容易导致出错,本文便是由此诞生。容我去泡杯茶慢慢道来(没咖啡当然只能喝茶了,谁能想到这咖啡一泡就是好几天)。
首先是一些必要的依赖(由于本人是在root用户下安装的,所以apt-get前无需sudo,非root用户别忘记sudo)
简单来讲,过程中大部分的报错都是缺少什么什么文件,只需把需要的文件下载、安装、链接即可。
1、安装Boost库:
Boost库,是一个C++支持库,众所周知,咖啡是靠C/C++来完成的,所以这个库是必须的,否则则会报类似的错如下:
In file included from ./include/caffe/blob.hpp:XX:XX,
from src/caffe/blob.cpp:XX:
./include/caffe/common.hpp:XX:XX: fatal error: boost/shared_ptr.hpp: 没有那个文件或目录
#include <boost/shared_ptr.hpp>
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/blob.o' failed
make: *** [.build_release/src/caffe/blob.o] Error 1
原因是缺少Boost库文件
安装Boost库的方法如下:
apt-get install libboost-all-dev
2、glog、gflags、lmdb、proto等一系列依赖:
这类依赖未安装的话,报错一般是找不到头文件之类的(XX代表数字):
In file included from ./include/caffe/common.hpp:XX:XX,
from ./include/caffe/blob.hpp: XX,
from src/caffe/blob.cpp:XX:
./include/caffe/util/device_alternate.hpp:XX:XX: fatal error: google/protobuf/stubs/common.h: 没有那个文件或目录
#include <google/protobuf/stubs/common.h>
^~~~~~~~~~~~~
compilation terminated.
Makefile:581: recipe for target '.build_release/src/caffe/blob.o' failed
make: *** [.build_release/src/caffe/blob.o] Error 1
这个由blob.hpp 之类的文件里面的所需头文件就可以看出来,报错原因是缺少必要的头文件依赖,因此只需安装这些依赖即可(无脑apt-get最喜欢了,省事)
安装proto:
apt-get install libprotobuf-dev protobuf-c-compiler protobuf-compiler
安装glog:
apt-get install libgoogle-glog-dev
安装gflags:
apt-get install libgflags-dev
安装lmdb:
apt-get install liblmdb-dev
安装数据库leveldb:
apt-get install libleveldb-dev
还有一种是链接报错,例如snappy:
安装snappy(同样无脑apt-get):
apt-get install libsnappy-dev
3、hdf5.h头文件:
虽说这个也是头文件,缺失时的报错与之前的几个头文件也类似,但是这个头文件不仅要安装,还有一步修改路径的骚操作,多谢网上大神的指导,不然还不知在这里要卡多久。
先是安装(无脑apt-get):
apt-get install libhdf5-\*
然后就是修改路径的骚操作,感谢大神指点:
#打开你的caffe-master文件夹中的Makefile.config文件
leafpad /caffe-master/Makefile.config
# 找到这行:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
# 替换为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
4、安装opencv:
apt-get install libopencv-dev
这个有点大,158M,耐心喝茶等待
5、安装BLAS:
apt-get install libatlas-base-dev
6、打开CPU_ONLY(!!!仅适用于想要打开CPU_ONLY的用户!!!):
#打开你的caffe-master文件夹中的Makefile.config文件
leafpad /caffe-master/Makefile.config
#如果想用CPU_ONLY,即不用GPU的,将第8行的CPU_ONLY := 1前的注释去掉即可(若此处为CPU_ONLY := 0,则改为1)
7、更改各种路径、链接,不断make,不断报错,不断改进:
经过以上的步骤之后,好不容易make all一下,运行了一分钟没报错,感觉这波稳了(毒奶)然后就被报错如下:
AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so.1.0.0
/usr/bin/ld: /usr/local/lib/libboost_thread.a(thread.o): relocation R_X86_64_PC32 against symbol `_ZN5boost6detail15sp_counted_base7destr