Caffe编译
由于组里项目的问题,需要安装CUDA,之前其他同学弄了一段时间,没有太多关注这些问题。最近才发现,Caffe安装并不正确,因此重新进行了安装。
按照Makefile中的说法,是还需要opencv3.2版本(但是好像没有也可以)
先不安装
依赖库的安装
装其他依赖库glog这个我之前已经验证过了,必须选项
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install --no-install-recommends libboost-all-dev sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
修改Makefile.config
下边是重要的一项,将Makefile.config文件中的
#Whatever else you find you need goes here. 下面的
INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib
修改为:
INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/usr/lib/x86_64-linux-gnu/hdf5/serial
这是因为Ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径。
修改Makefile文件
打开Makefile文件,做如下修改,将:
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
上边已经装过opencv了,如果后边还是报undefined reference to 'cv::imread‘这一类的问题,请重新安装一遍libopencv-dev库,并且将目录配置好
INCLUDE修改1
在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
INCLUDE修改2
在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial opencv_core opencv_highgui opencv_imgcodecs
这里有一个问题,如果你安装的是opencv2的话,没有opencv_imgcodecs库,这里就不应该加(opencv_imgcodecs属于opencv3)。
编译
然后进行编译
make all -j32
下边是测试:
make test make runtest