1. 程式人生 > >ubuntu通過cmake編譯matcaffe介面

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