主要根据ubuntu安装caffe这个博客
网上有些教程说要安装protobuf2.6.1,实际上只要有protobuf就行,版本无所谓。如果编译过程中出现google protobuf未定义的引用之类的报错,可能是protobuf版本和gcc版本的问题,这里有相应的解决方案
安装gcc5,太高版本或者太低版本都不太好的亚子
首先卸载gcc原来版本
sudo apt-get remove gcc
安装
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 60 --slave /usr/bin/g++ g++ /usr/bin/g++-5
查看protobuf版本
protoc --version
首先更新
sudo apt update
安装依赖
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
sudo apt-get install libsnappy-dev
sudo apt-get install libopencv-dev
sudo apt-get install libhdf5-serial-dev
sudo apt-get install protobuf-compiler
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install --no-install-recommends libboost-all-dev
下载caffe
git clone git://github.com/BVLC/caffe.git
编译caffe
1.进入caffe目录下:
cd caffe
2.生成Makefile.config文件:
cp Makefile.config.example Makefile.config
3.修改Makefile.config文件中的配置:
1)编辑Makefile.config文件:
sudo gedit Makefile.config
2)去掉CPU_ONLY:=1前面的#号:
3)配置引用文件路径:
将原来的内容:
替换为:
4.执行编译,执行以下指令:
sudo make all
sudo make test
suao make runtest
出现下图所示则成功
可能还会剩余几个有关opencv的未定义的引用
首先这个问题确实是opencv的问题,只需要把 Makefile.config里的 #USE_PKG_CONFIG := 这一行前面的#给去掉,然后在他下一行添加
LIBRARIES += glog gflags protobuf leveldb snappy \
lmdb boost_system hdf5_hl hdf5 m \
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
保存,然后再编译即可。如果还不可以,试一下把原来的编译内容用make clean清空,再重新编译。如果还不行,那只能靠诸位再继续大胆尝试了。
参考博客1
参考博客2
参考博客3