$ sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt install --no-install-recommends libboost-all-dev
$ sudo apt install libatlas-base-dev libopenblas-dev
$ sudo apt install libgflags-dev libgoogle-glog-dev liblmdb-dev
Clone the repository:
$ git clone https://github.com/BVLC/caffe.git
$ cd caffe
For Debian:
~/caffe $ sudo ln -s /usr/lib/<YOUR_ARCH>/libhdf5_serial.so /usr/lib/<YOUR_ARCH>/libhdf5.so
~/caffe $ sudo ln -s /usr/lib/<YOUR_ARCH>/libhdf5_serial_hl.so /usr/lib/<YOUR_ARCH>/libhdf5_hl.so
~/caffe $ find . -type f -exec sed -i -e 's^"hdf5.h"^"hdf5/serial/hdf5.h"^g' -e 's^"hdf5_hl.h"^"hdf5/serial/hdf5_hl.h"^g' '{}' \;
~/caffe $ cp Makefile.config.example Makefile.config
~/caffe $ vim Makefile.config
CPU_ONLY := ON
BLAS := open
~/caffe $ make all -j8
~/caffe $ mkdir cmake_build
~/caffe $ cd cmake_build
~/caffe/cmake_build $ cmake .. -DBUILD_SHARED_LIB=ON -DCPU_ONLY=ON -DBLAS=open
~/caffe/cmake_build $ cmake . -DCMAKE_BUILD_TYPE=Debug
~/caffe/cmake_build $ make -j8 && make install
~/caffe $ protoc src/caffe/proto/caffe.proto --cpp_out=.
~/caffe $ mkdir include/caffe/proto
~/caffe $ mv src/caffe/proto/caffe.pb.h include/caffe/proto
cmake_minimum_required(VERSION 2.8)
set(PROJECT InnoMobile)
project(${PROJECT})
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -std=c++11 -Wall -g -lboost_system -lglog")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
find_package(OpenCV)
find_package(Caffe)
add_definitions(${Caffe_DEFINITIONS})
set(LIBS ${LIBS}
pthread
)
aux_source_directory(sources SOURCES)
set(SOURCES ${SOURCES}
${PROJECT}.cpp
)
include_directories(
sources
${OpenCV_INCLUDES}
${Caffe_INCLUDE_DIRS}
)
add_executable(${PROJECT} ${SOURCES})
target_link_libraries(${PROJECT}
${LIBS}
${OpenCV_LIBS}
${Caffe_LIBRARIES}
)