Opencv3.2安装关于CUDA的问题

之前已经安装过的opencv3.2.0+opencv-contrib3.2.0想安装在另一个地方结果出现错误了,明明什么都没改变过,只能硬着头皮改错误了。(后来发现是因为CUDA造成的)

最开始从CMakeError.log文件中得知有如下错误:(这个错误一直都在CMakeError.log中记录,但是似乎不是主要原因,而且编译的终端里没有显示这个错误,不太清楚是不是必须要修改这个错误)

opencv-3.2.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1:10: 
fatal error: sys/videoio.h: No such file or directory

参考链接:https://stackoverflow.com/questions/45582565/opencv-cmake-error-no-such-file-or-directory-on-ubuntu

在终端显示了如下错误:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_nppi_LIBRARY (ADVANCED)
linked by target “opencv_cudev” in directory D:/Cproject/opencv/opencv/sources/modules/cudev
linked by target “opencv_cudev” in directory D:/Cproject/opencv/opencv/sources/modules/cudev
linked by target “opencv_test_cudev” in directory D:/Cproject/opencv/opencv/sources/modules/cudev/test

这篇博客很好的解决了这个问题:https://blog.csdn.net/u014613745/article/details/78310916
博主解释:引起错误的主要原因是cuda9不再支持2.0架构。(恍然大悟,近期刚更换了NVIDA显示驱动,下载了新版本的CUDA,查看了自己的CUDA版本为10.1.1243,更新前用的是系统自带的Nouveau显示驱动,而且没有下载或更新CUDA,所以之前编译没错误)NIVIDA官方cuda下载
CUDA_VERSION
nvcc fatal : Unsupported gpu architecture 'compute_20’错误
在这里插入图片描述
找到cmake/OpenCVDetectCUDA.cmake文件

修改
set(__cuda_arch_bin "2.0 3.0 3.5 3.7 5.0 5.2 6.0 6.1") 
为
set(__cuda_arch_bin "3.0 3.5 3.7 5.0 5.2 6.0 6.1") 

参考链接:https://www.twblogs.net/a/5b7ecca02b717767c6abdf22(这位碰到了很多类似问题,因此总结的比较全面)

也可以利用cmake-gui,在gui中修改,参考链接:https://blog.csdn.net/Sanviolet/article/details/79081363

然后可以顺利编译了,但是花了很长时间,而且有一大堆与cudev相关的警告。(用起来会不会有问题待定~)
对于这些警告,有人是这么解释的:shfl without sync causes a warning in CUDA 9.2, but shfl with sync causes an error in CUDA 8.0
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/XindaBlack/article/details/102710791
今日推荐