一,安装基础开发工具和开发包
安装gcc:yum install gcc
安装g++:yum install gcc-c++:
git安装与卸载的方式
二,安装通用依赖
sudo yum install protobuf-devel leveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel atlas-devel
三,安装其他依赖
sudo yum install gflags-devel glog-devel lmdb-devel
注意:如果需要手动安装包,那么必须安装cmake:
如果发现没有找到上面的包,可以采用手动安装的方法,系统需要提前装好最新的cmake版本,我装的是3.4.0版本。
cmake版本传送cmake3.4.0二进制版本
cmake的配置过程可以参考Centos6.3安装配置cmake
在上面安装依赖的时候,最好在caffe下手动安装opencv-devel和gflags-devel,方法如下:
$ sudo yum -y install cmake pkgconfig gtk2-devel python-devel numpy tbb-devel libpng-devel $ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.10/opencv-2.4.10.zip $ unzip opencv-2.4.10.zip $ cd opencv-2.4.10 $ mkdir build $ cd build $ cmake ../ -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local \ -DBUILD_EXAMPLES=ON -DBUILD_NEW_PYTHON_SUPPORT=ON \ -DINSTALL_PYTHON_EXAMPLES=ON $ make -j 2 $ sudo make install
# glog
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gztar zxvf glog-0.3.3.tar.gzcd glog-0.3.3
./configure
make && make install
# gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
//上面一步特别重要,尤其是当出现找不到-fPIC的时候,执行这一句即可
make && make install
# lmdb
git clone https://github.com/LMDB/lmdbcd lmdb/libraries/liblmdb
make && make install
-
glog
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
./configure
make && make install
-
lmdb
git clone https://github.com/LMDB/lmdb
cd lmdb/libraries/liblmdb
make && make install
-
protobuf重要
安装步骤请参考 http://blog.csdn.net/tdmyl/article/details/31811317
-
hdf5安装
hdf5安装请查看官方文档
http://www.hdfgroup.org/HDF5/release/obtainsrc.html#src
- leveldb安装
leveldb下载请见https://github.com/google/leveldb
安装请见http://blog.sina.com.cn/s/blog_560e310001015jfx.html
缺失的步骤:
leveldb文件夹下依次执行
make
cd out-shared
cp lib* /usr/local/lib
切记,上述依赖需要安装到/usr/local下面的目录,否则编译时会提示找不到相关库文件。当然也可以配置到用户自定义的目录下面,不过没有尝试过。 前方高能!!接下来就是一些稍大型的安装动作了,步骤如下:
安装caffe:
一,下载Caffe源码
git clone https://github.com/bvlc/caffe.git
cd caffe/
mv Makefile.config.example Makefile.config
二,修改Makefile.config,大考CPU_ONLY选项,保存
1,#仅CPU模式开关,打开该选项(去掉#)表示Caffe仅支持CPU,不支持GPU
CPU_ONLY:=1
2,去掉BLAS_INCLUDE=/path/to/your/blas和BLAS_lIB=/path/to/your/blas的#,然后添加自己的路径
BLAS_INCLUDE:=/usr/include
BLAS_lIB:=/usr/lib64/atlas
三,vim Makefile
将LIBRARIES += cblas atlas 改为 LIRARIES +=satlas tatlas
四,make -j8
然后等待编译成功,可能会遇到下列错误,如果出现错误一定要先看出现错误的地方,不要只看最后报错的地方,一定要看出错的原因是什么,从头读到尾,不要只看结果,我把自己遇到的错误整理如下:
错误一:gcc 编译出现 internal compiler error: Killed
internal compiler error: Killed (program cc1plus)
在 640M 内存的 vps 做编译的时候出现了上述错误.
几经搜索, 才发可能是系统没有交换分区, 编译过程中内存耗尽, 导致了编译中断 …
解决方式也很简单, 就是增加一个交换分区:
1. 创建分区文件, 大小 2G
dd if=/dev/zero of=/swapfile bs=1k count=2048000
2. 生成 swap 文件系统
mkswap /swapfile
3. 激活 swap 文件
swapon /swapfile
这样就木有问题了, 但是这样并不能在系统重启的时候自动挂载交换分区, 这样我们就需要修改 fstab.
修改 /etc/fstab 文件, 新增如下内容:
/swapfile swap swap defaults 0 0
这样每次重启系统的时候就会自动加载 swap 文件了.
原文地址:https://xwsoul.com/posts/684
错误二:gcc版本需要4.8以上,支持C++11
C++11标准在2011年8月份获得一致通过,这是自1998年后C++语言第一次大修订,对C++语言进行了改进和扩充。随后各编译器厂商都各自实现或部分实现了C++中的特性。
下面介绍在Linux系统下,升级GCC以支持C++11。目前来看GCC是对C++11支持程度最高最多的编译器,但需要GCC4.8及以上版本。
原GCC版本:4.4.7;
目标:升级GCC到4.8.2,以支持C++11。
- 获取GCC 4.8.2包:wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz;
- 解压缩:tar -xf gcc-4.8.2.tar.gz;
- 进入到目录gcc-4.8.2,运行:./contrib/download_prerequisites。这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。
- 建立输出目录并到目录里:mkdir gcc-build-4.8.2;cd gcc-build-4.8.2;
- ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib。--enable-languages表示你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查;
- 编译:make;注意此步和上一步,比较耗时;
- 安装:make install;
- 验证:gcc -v;或者g++ -v,如果显示的gcc版本仍是以前的版本,就需要重启系统;或者可以查看gcc的安装位置:which gcc;然后在查看版本 /usr/local/bin/gcc -v,通常gcc都安装在该处位置,如果显示为;
则表示已经升级成功。
错误三:make: *** [.build_release/tools/caffe.bin] Error 1
解决方法 存在上一次安装的残留文件。用 make clean
清除之前的安装,重新编译即可