Linux 编译SSD Caffe目标检测代码

本文介绍了如何在Linux环境下,针对出现编译错误的情况,通过安装GCC5.4来成功编译SSD Caffe目标检测代码。详细步骤包括:下载并安装GCC5.4、Protobuf-3.4.1、Boost 1.56.0、gflags-2.2.0、glog和leveldb,以及最后编译SSD Caffe代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

SSD: Single Shot MultiBox Detector 是ECCV 2016上发表的目标检测的论文(https://arxiv.org/pdf/1512.02325.pdf),作者在github上公布了代码,地址为https://github.com/weiliu89/caffe/tree/ssd.
但是编译的时候确出现了 Type name declared error

/usr/include/boost/property_tree/detail/json_parser_read.hpp: In constructor ‘boost::property_tree::json_parser::json_grammar<Ptree>::definition<Scanner>::definition(const boost::property_tree::json_parser::json_grammar<Ptree>&)’:
/usr/include/boost/property_tree/detail/json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array

代码Repository 的Issues中#54 #83等建议使用gcc 5.3或5.4编译caffe,以下是安装GCC5.4和用gcc 5.4编译caffe的过程。

系统基本环境

操作系统:Red Hat 4.8.5-11
GCC 版本:gcc 4.8.5

编译安装过程

安装GCC5.4

下载

GCC5.4可以从官网下载,也可以从镜像下载,我们这里从清华大学的镜像下载,地址为:
https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.gz

解压
tar -xf gcc-5.4.0.tar.gz 
cd gcc-5.4.0
安装gcc5.4依赖库

gcc 5.4.0依赖于 gmp, mpc, mpfr 三个库,gcc5.4提供了下载脚本并在编译的时候安装

./contrib/download_prerequisites
配置编译选项
./configure --prefix=/home/share/local --enable-languages=c,c++,fortran --disable-multilib

在里/home/share/local是我安装gcc-5.40的路径,可以改成自己路径。

编译安装
make -j8
make install

编译之后需要将bin的路径加到PATH中,并且将lib64(如果有lib的话也加进去)的路径加到LD_LIBRARY_PATH中

export PATH=/home/share/local/bin:$PATH
export LD_LIBRARY_PATH=/home/share/local/lib64:/home/share/local/lib:$LD_LIBRARY_PATH

安装Protobuf-3.4.1

下载

protobuf-3.4.1下载地址

解压
tar -xf  protobuf-cpp-3.4.1.tar.gz
cd protobuf-3.4.1/
配置编译选项
./configure --prefix=/home/share/local

在里/home/share/local是安装路径

编译安装
make -j8
make install

安装Boost 1.56.0

下载

Boost 1.56.0下载地址https://sourceforge.net/projects/boost/files/boost/1.56.0/boost_1_56_0.tar.bz2/download

解压
tar -jxf boost_1_56_0.tar.bz2
cd boost_1_56_0/
配置编译选项
./bootstrap.sh --prefix=/home/share/local

在里/home/share/local是安装路径

编译安装
./b2 -j8
./b2 install


...failed updating 4 targets...
...skipped 12 targets...
...updated 11322 targets...

安装gflags-2.2.0

下载

gflags-2.2.0 下载地址https://codeload.github.com/gflags/gflags/tar.gz/v2.2.0

解压
tar -xf gflags-2.2.0.tar.gz
cd gflags-2.2.0/

z这里我们使用cmake 配置编译选项,cmake版本是cmake 3.8.2

配置编译选项
 ccmake ..  -DCMAKE_INSTALL_PREFIX=/home/share/local/ -DBUILD_SHARED_LIBS=ON

使用ccmake命令配置时,最开始按c健进行configure, 然后再按一次c键确认configure,然后按g键进行生成Makefile,进行编译。

编译安装
make -j8
make install

安装glog

下载
git clone https://github.com/google/glog.git
cd glog/

这里我们仍然使用cmake 配置编译选项,好处是可以很方便地找到我们刚编译的gflags,否则容易和已安装的gflags混淆。

配置编译选项
 ccmake ..  -DCMAKE_INSTALL_PREFIX=/home/share/local/ -DCMAKE_BUILD_TYPE=Release \
 -DCMAKE_CXX_COMPILER=/home/share/local/bin/g++ -DCMAKE_C_COMPILER=/home/share/local/bin/gcc

使用ccmake命令配置时,最开始按c健进行configure, 然后再按一次c键确认configure,然后按g键进行生成Makefile,进行编译。

编译安装
make -j8
make install

安装leveldb

下载
 git clone https://github.com/google/leveldb.git
 cd leveldb
编译安装
make -j8
cp -av out-shared/libleveldb.so* /home/share/local/lib/
cp -av include/leveldb /home/share/local/include/

编译SSD caffe代码

其他依赖库似乎不用重新用gcc 5.4编译,可以使用原来的依赖库,现在我们来编译ssd的代码

下载
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
编译
make -j8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值