安装这个额外包安装了好多天的时间,因为电脑装了cuda8,又装了opencl,然后重新编译opencv就巨坑,真的是巨坑,吐血整理,因为caffe和cuda已经装好,还好没有装崩
首先两个压缩包要下对,下面取自github上的issue,
Thanks @alalek !
I update both opencv and opencv_contrib to the latest and it works fine now.
Yesterday:
Today:
首先是cmake 配置选项
proxy sudo cmake -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.2.0/modules -D CMAKE_BUILD_TYPE=Release -D WITH_CUDA=ON -D CMAKE_INSTALL_PREFIX=/usr/local ..
上面第一个proxy是我用了命令行的梯子,因为国内可能访问不了补充包需要下载的一些资源,教程在这里如果不用梯子的话,需要自己下载一个叫protobuf-cpp-3.1.0.tar.gz,放在他报错的目录下,百度应该可以下载到,然后配置完了会看到检测到cuda7.5,然而我安装的cuda明明是8.0,这是一个之后的坑,等会说。
然后就是make -8,因为前面检测到的cuda7.5,会报错一个
undefined reference to nppiGraphcut*
然后需要改一行opencv源码的代码,
opencv-3.2.0/modules/cudalegacy/src/graphcuts.cpp
在一行cuda_version >=8000 改为 7500
因为实际上编译用的cuda8,不知道为什么会检测出来是cuda7.5
然后编译,如果遇到一些boost*.i没有,就下好了放在同目录下,cmake可以联网的话理论上会下载好的,然后就是编译完成了
最后一坑,让我差点重新装系统,就是上面编译好后,python可以import cv2了,通过g++ flag opencv也可以编译,但是cmake出错
Could NOT find CUDA: Found unsuitable version "8.0", but required is exact
version "7.5" (found /usr/local/cuda-8.0)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:386 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.5/Modules/FindCUDA.cmake:949 (find_package_handle_standard_args)
/usr/local/share/OpenCV/OpenCVConfig.cmake:86 (find_package)
/usr/local/share/OpenCV/OpenCVConfig.cmake:105 (find_host_package)
CMakeLists.txt:4 (FIND_PACKAGE)
cmake检测到opencv需要cuda7.5(因为编译是检测到的7.5,实际用的cuda8),所以cmake无法完成,这里我进
/usr/local/share/OpenCV/OpenCVConfig.cmake:105
然后修改了 7.5 为8 ,即修改了opencv 的配置文件使其为8.0版本,然后opencv就完美运行,试了一波caffe也能运行