Ubuntu16.04+anaconda2+caffe+ssd+opencv3.1.0在编译caffe过程中的问题及解决方法

    主要遇到三个问题,前两个是caffecmake过程中的问题,后一个是在编译过程中的问题。

问题1 CMake Warning at /home/hk/opencv-3.1.0/cmake/OpenCVConfig.cmake:166 (message):

  Found OpenCV Windows Pack but it has no binaries compatible with your

  configuration.

  You should manually point CMake variable OpenCV_DIR to your build of OpenCV Library.

问题原因:

    应该是目录配置不对,这个我不知道究竟哪里不对,我在.bashrc下有设置opencv的环境变量,甚至在/etc/ld.so.conf中也添加了opencv的路径,但是二者均没有产生作用,注意最好不要在ld.so.conf文件下放置.bashrc的里设置过得路径(个人理解),否则会出现无法登录的问题。

解决方法:

~/caffe/build文件下终端执行:  

cmake -D OpenCV_DIR=/home/hk/opencv-3.1.0/build/ ..

(注意 1. 目录中hk是我的用户名;2. / ..中间有空格)

 

问题2CMake Error at cmake/Dependencies.cmake:99 (find_package):

  Found package configuration file:

 

    /home/hk/opencv-3.1.0/cmake/OpenCVConfig.cmake

 

  but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be

  NOT FOUND.

问题原因:

Opencv_found变量被设置为false,这个设置应该是要在../caffe/Makefile里的,但是我在该文件下没有找到这个配置,倒是在../camke/Dependencies.cmake文件下找到了OpenCV_FOUND的设置,但是在这里更改无用。

网上对于该问题也有很多解决方法,但是大多数无用,可以下载安装cmake-gui工具(可视化cmake工具,需下载安装),对其进行设置,可以参考我的设置,也可参考网址:https://www.tuicool.com/articles/ieuMRnr

 Ubuntu16.04+anaconda2+caffe+ssd+opencv3.1.0在编译caffe过程中的问题及解决方法 主要遇到三个问题,前两个是caffe在cmake过程中的问题,后一

 

注意图中有两个选项 OpenCV_FOUNDOPENCV_FOUND这里之前是没有选中的,我们选中然后基本就解决问题了,这里tip一下,可以通过这些选项来检查前边的Makefile.conf文件中的设置是否有误。

在这之后单击Configure - 执行完成之后单击 Generate,完成make

然后在终端中执行:

../build$ camke ..

 

你会发现问题解决了。

 

问题3:出现在make编译阶段

/anaconda2/lib/libsoxr.so.0:对‘[email protected]_4.0’未定义的引用 collect2: error: ld returned 1 exit status

//或者是别路径下的 其他so 出现这种问题均适用

问题原因:可能由于我这里anaconda2的编译器是gcc4.4(或其他),但是Ubuntu16.04Gcc版本是5.4.0,二者冲突导致。

在网上查了好多资料,基本基于以下两种方法:

 Ubuntu16.04+anaconda2+caffe+ssd+opencv3.1.0在编译caffe过程中的问题及解决方法 主要遇到三个问题,前两个是caffe在cmake过程中的问题,后一Ubuntu16.04+anaconda2+caffe+ssd+opencv3.1.0在编译caffe过程中的问题及解决方法 主要遇到三个问题,前两个是caffe在cmake过程中的问题,后一Ubuntu16.04+anaconda2+caffe+ssd+opencv3.1.0在编译caffe过程中的问题及解决方法 主要遇到三个问题,前两个是caffe在cmake过程中的问题,后一

  1. 方法1:使用cmake-gui并检查 WITH-OPENMP c>
  2. 方法2:从 $ PATH 和删除Anaconda 。

参考网址:http://www.it1352.com/540546.html

 

多次尝试方法2,未能有效解决问题,遂尝试方法1。方法1在camke 后添加 -D WITH_OPENMP=ON 执行揭开,但是直接使用方法二会提示WITH_OPENMP指令无效(被这个坑惨了),这个是由于config中没有开启OPENMP(在Makefile.conf中也查找不到),因此需要在CMAKE_GUI中进行配置,如上图所示,有个USE_OPENMP选项,把这个选上后续操作如问题2,然后编译完成。

这个问题的产生极有可能与环境变量的配置及Makefile.conf配置有关,还请多次检查自己的配置。

LINUX小白,自己在安装过程中遇到的坑,费了很长时间,希望能对大家有所帮助,高手勿喷,请多指教