实验室的服务器由于之前安装过几个版本的opencv,所以在编译caffe的过程中出现了opencv库冲突的情况,导致了下面问题的发生:
这个问题困扰了我好久,并致使我在前段时间甚至萌生了放弃caffe的想法,但是大佬的论文都是用caffe写的代码,让我这个小弱鸡完全没有选择的权利啊,通过努力的查找相关资料,我终于发现了解决的办法:
https://stackoverflow.com/questions/44082677/caffe-libopencv-core-dso-missing-from-command-line
在stackoverflow上有人给出了解决方案,可以通过在修改Makefile.config中的LIBRARY_DIRS:项来解决,可以指定具体的opencv的lib库文件夹的位置来完成编译。另外在修改之后需要使用
make clean
来clean掉之前编译的结果,在使用
make all -j4
重新编译caffe
可以看到,之前的错误已经被完全解决了
以下是我的Makefile.config 中opencv路径修改的部分,指定了opencv的具体路径
LIBRARY_DIRS := ${PYTHON_LIB} /usr/local/opencv340/lib /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
然后是我在Makefile中的修改部分:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui
别的部分的修改网上大多都有相应的介绍,具体问题,具体分析,这里就不进行过多展开了