ubuntu通过cmake编译matcaffe接口

这段时间在基于别人的代码做修改,但是源代码编译caffe的方式是使用cmake具体编译方式如下:

cd caffe
mkdir build && cd build
cmake .. -DUSE_MPI=ON -DCUDNN_INCLUDE=/path/to/cudnn/include -DCUDNN_LIBRARY=/path/to/cudnn/lib64/libcudnn.so
make -j8 && make install
cd ../..

但是可以从打印的信息看到并没有配置Matlab接口;因此我们需要打开编译matlab的接口,修改caffe目录下的CMakeLists.txt的一下内容

caffe_option(BUILD_matlab "Build Matlab wrapper" OFF IF UNIX OR APPLE)
改为
caffe_option(BUILD_matlab "Build Matlab wrapper" ON IF UNIX OR APPLE)

这时候再次配置,发现无法找到系统的Matlab,因此再次添加Matlab路径,在caffe/cmake/Modules/FindMatlabMex.cmake修改

find_program(Matlab_mex    NAMES mex    mex.bat    HINTS $(Matlab_DIR) PATH_SUFFIXES bin NO_DEFAULT_PATH)
find_program(Matlab_mexext NAMES mexext mexext.bat HINTS $(Matlab_DIR)  PATH_SUFFIXES bin NO_DEFAULT_PATH)
改为
find_program(Matlab_mex    NAMES mex    mex.bat    HINTS /home/wyl/MATLAB PATH_SUFFIXES bin NO_DEFAULT_PATH)
find_program(Matlab_mexext NAMES mexext mexext.bat HINTS /home/wyl/MATLAB PATH_SUFFIXES bin NO_DEFAULT_PATH)

这时候仍然报错

/usr/bin/ld: cannot find -lpython2

需要修改

caffe/build/matlab/Cmakefiles/matlab.dir/build.make

lopencv_imgproc -lopencv_imgcodecs -llapack_atlas -lcblas -latlas -lpython2 -lboost_python -lmpi_cxx -lmpi -lprotobuf
改为
lopencv_imgproc -lopencv_imgcodecs -llapack_atlas -lcblas -latlas -lpython2.7 -lboost_python -lmpi_cxx -lmpi -lprotobuf

猜你喜欢

转载自blog.csdn.net/C_Dreams/article/details/79574014