ubuntu16.04LTS+opencv3.3.0,解决编译caffe时,出现的opencv的VideoCapture类接口找不到问题

   本人环境ubuntu16.04LTS,之前在caffe工程基础上,编译公司项目时老是找不到tiff库接口。此时,我用的opencv版本是2.4.9.1,caffe已经编译通过。网上方法用尽,实在解决不了,所以参考如下链接:

https://stackoverflow.com/questions/29272497/linking-error-with-libopencv-highgui-so-under-ubuntu-14-04-strange-result-wit

中某位网友建议使用源码重新编译下opencv,所以下载了opencv3.3.0重新编译了下。cmake命令是“cmake -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_TIFF=ON -D CMAKE_INSTALL_PREFIX=/usr/local …”。其中,“-D BUILD_TIFF=ON”是采用如下链接的方法(解决找不到tiff库接口):

https://www.cnblogs.com/platero/p/4141063.html

但还是出现了tiff接口找不到问题:

ubuntu16.04LTS+opencv3.3.0,解决编译caffe时,出现的opencv的VideoCapture类接口找不到问题_第1张图片

        病急乱投医,最后采用某位网友方法,先卸载libtiff5,然后再安装,居然成功了,原因我目前还没搞清楚,然后opencv3.3.0就顺利编译通过,并且用make install顺利安装完备。提及方法参考链接如下:

https://blog.csdn.net/xiangxianghehe/article/details/78780269

   以上算是交待下背景,请原谅我的啰嗦,进入正题。编译caffe,结果出现了opencv的VideoCapture类接口找不到问题,如下(贴部分出来):

.build_release/lib/libcaffe.so: undefined reference to `cv::VideoCapture::set(int, double)'
.build_release/lib/libcaffe.so: undefined reference to `cv::VideoWriter::write(cv::Mat const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::VideoCapture::open(cv::String const&)'
.build_release/lib/libcaffe.so: undefined reference to `cv::VideoCapture::release()'
.build_release/lib/libcaffe.so: undefined reference to `cv::VideoCapture::operator>>(cv::Mat&)'

     网上也有网友说是libopencv_imgcodecs的链接问题,但我查了下接口,实际上是在libopencv_videoio.so中。查了下,/usr/local/lib中也有这个库,说明安装没问题。在caffe工程的makefile中,查了下,链接路径也包含了。同时,链接libopencv_videoio.so有条件(Makefile中),即opencv版本是3才行,如下:

ubuntu16.04LTS+opencv3.3.0,解决编译caffe时,出现的opencv的VideoCapture类接口找不到问题_第2张图片

    重新进入Makefile.config中,查看OPENCV_VERSION的配置,发现该赋值被隐掉了,原因总算找到。将该变量赋值激活,即去掉隐掉符“//”,如下:

       然后,重新编译caffe,终于通过。最后,编译自己项目工程,也顺利通过。以上只是把自己遇到问题的一些过程展示给大家,希望对你们有帮助。

你可能感兴趣的:(图像处理)