1、我自己用的是ubuntu14.04,opencv3.1,当报错为:
CXX/LD -o .build_release/tools/convert_imageset.bin
.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)’
.build_release/lib/libcaffe.so: undefined reference tocv::imencode(cv::String const&, cv::_InputArray const&, std::vector >&, std::vector > const&)’
.build_release/lib/libcaffe.so: undefined reference to `cv::imdecode(cv::_InputArray const&, int)’
collect2: error: ld returned 1 exit status
make: * [.build_release/tools/convert_imageset.bin] Error
之前我已经安装好了opencv,出现上面的错误,应该是opencv_imgcodecs链接的问题,比较有效的解决方案是,把opencv需要的lib添加到Makefile文件中,找到LIBRARIES(在PYTHON_LIBRARIES := boost_python python2.7 前一行)并修改为:
LIBRARIES += glog gflags protobuf leveldb snappy \
lmdb boost_system hdf5_hl hdf5 m \
opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
修改之后再重新make clean, make all,make test
2、编译matlab接口失败的问题
若编译matlab接口失败,则打开makefile文件,找到CXXFLAGS += -MMD -MP一行,在其下面添加一行:
CXXFLAGS += -std=c++11,然后重新make matcaffe即可。