在CAFFE编译时会出现如下错误:
CXX/LD -o .build_release/tools/caffe.bin
.build_release/lib/libcaffe.so:对‘cv::imread(cv::String const&, int)’未定义的引用
.build_release/lib/libcaffe.so:对‘cv::imencode(cv::String const&, cv::_InputArray const&, std::vector<unsigned char, std::allocator >&, std::vector<int, std::allocator > const&)’未定义的引用
.build_release/lib/libcaffe.so:对‘cv::imdecode(cv::_InputArray const&, int)’未定义的引用
collect2: error: ld returned 1 exit status
Makefile:635: recipe for target ‘.build_release/tools/caffe.bin’ failed
究其原因,是因为caffe编译时默认为opencv2-XX版本 但目前python基本都用的时opencv3-XX版本
解决方案如下:
cd caffe
sudo gedit Makefile
在 Makefile文件的195 行 LIBRARIES += opencv_core opencv_highgui opencv_imgproc
opencv_imgcodecs opencv_videoio
具体位置在PYTHON_LIBRARY?=boost_python python2.7上面一行