关于在ubuntu上安装caffe框架的教程,网上已有很多,因此本文旨在:(1)整理现有资料;(2)分享若干自己遇到的特殊问题和解决方案。
1. 现有资料:
(1)安装opencv
(2)安装caffe框架
2. 自己遇到的特殊问题及解决方案:
问题描述:
我按照上述教程安装caffe时,遇到一个问题:在caffe目录下执行make all时,链接过程报错——对‘cv::_InputArray::_InputArray(cv::Mat const&)’未定义的引用。
关于上述问题,网上也有很多解决方案,但我直接套用别人的解决方案后,并未解决上述问题。
解决思路:
出现"对xxx’未定义的引用"时,通常是由于“编译/链接路径配置”出了问题,网上已有不少解决方案。但是,由于每台电脑的路径配置千差万别,运气差的话,把全网的解决方案都试一遍也不能解决(笔者就属于这类运气差的人)。此时,我们需要亲自阅读一遍Makefile文件,找找是哪个路径配置错了,然后改正过来。在不了解Makefile文件的人看来,Makefile似乎是本晦涩的天书。其实,要读懂Makefile文件并不难,我们只需了解一些关于Makefile的基础知识即可。
我遇到的“对‘cv::_InputArray::_InputArray(cv::Mat const&)’未定义的引用”,是由于系统中安装了多个opencv版本导致的。具体地讲,我的编译器的包含路径指向了opencv2.x的include文件夹,但是链接器的库路径指向了opencv3.x的lib文件夹。于是,我将编译器的包含路径指向opencv3.x的include文件夹后,问题便解决了。下面给出我在修改编译器包含路径的所查阅的资料: