caffe编译时出现opencv类似于cv::xx没有定义或者无法连接问题的解决方法总结

最近在编译基于caffe修改的工程的时候总是会出现opencv报错导致caffe编译不通过的问题,很是困扰。
问题一般为:cv::xx没有定义或者无法连接
在Windows系统下开发工程时出现这种问题的原因一般有两种:
1:在vs的工程属性中没有将opencv相关的库和文件包含目录以及库目录,导致工程无法链接到和opencv相关的静态库
这种问题的解决办法:将自己电脑本地上的opencv相关的文件路径和库目录路径包含在工程里面,再重新编译工程,就可以顺利编译通过。
2:工程下opencv相关的库和文件已经包含在工程属性中,但还是会报出cv::xx没有定义或者链接
这种问题的解决办法:将缺的lib库包含在vs里的库文件就好,然后重新编译,就可以愉快的工作了。
以上的解决办法在Windows系统下,会很简单的解决了,但本次编译caffe的过程是在linux下,由于对makefile和makefile.config操作不熟悉,所以有点儿麻爪儿。但镇定了一下,决定还是从在Windows系统下分析的问题原因出发,着手对makefile.config和makefile进行操作,出现这种问题的原因无非也有两种
1、在makefile.config文件中没有加入opencv相关的路径
解决办法:将opencv的相关路径加入到makefile.config中,然后重新编译caffe
2、若在makefie.config文件中已经加入了opencv相关路径,则是在makefile中没有加入和缺失函数相关的静态库,例如原始caffe中只是添加了和图片相关的lib库,但修改的caffe工程可能会和视频相关,加入了视频相关的,但是makefile中没有和opencv处理视频相关的lib库,这是就会报上述错误。
该种问题的解决办法:将和缺失函数相关的opencv库加入makefile中的195行上下的opencv静态库中。

你可能感兴趣的:(算法)