caffe使用cmake编译问题及解决办法
1 问题:出现“/usr/lib/x86_64-linux-gnu/.8: undefined reference to lzma_index_size@XZ_5.0' /usr/local/lib/libopencv_imgcodecs.so.3.1.0: undefined reference to
TIFFReadDirectory@LIBTIFF_4.0’
…/lib/.1.0.0: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&) const’ ”等错误
原因:系统存在多个opencv库导致的caffe运行异常
解决办法:先确定系统正确安装了opencv,再将anaconda环境配置屏蔽,即将
export PATH="/home/xjj/anaconda2/bin:${PATH}"改为
#export PATH="/home/xjj/anaconda2/bin:${PATH}"
重新进入build目录
cmake …
make -j4
后可能会出现如下错误
“…/lib/.1.0.0: undefined reference to cv::VideoWriter::write(cv::Mat const&)' ../lib/.1.0.0: undefined reference to
cv::VideoWriter::isOpened() const’
…/lib/.1.0.0: undefined reference to `cv::VideoWriter::~VideoWriter()’
”
原因:caffe找不到opencv路径
解决办法:在 “project(Caffe C CXX)” 下面加入如下行
find_package( OpenCV REQUIRED )
以找到opencv。
重新编译,成功。