因为CUDA10貌似不支持OpenCV2,所以需要对OpenCV2的文件进行修改
主要参考https://blog.csdn.net/u014613745/article/details/78310916
请注意:
本篇博客需要结合上面的链接中的博客进行食用,因为该博客发的较早,所以某几步还需要在它基础上进行更改,主体步骤按照该博客来就行,这里只给出需要调整的地方:
【第四步】
在第四步修改架构的时候,需要根据自己的显卡架构以及算力修改
例如 RTX2060s是基于Turing架构的,算力为7.5
所以应该修改下面两处(前面的那个Kepler不用管,也可以自己添加其他架构和算力):
- 第一处
set(_generations "Fermi" "Kepler")
改为:
set(_generations "Fermi" "Kepler" "Maxwell" "Pascal" "Volta" "Turing")
- 第二处
set(__cuda_arch_ptx "")if(CUDA_GENERATION STREQUAL "Fermi")set(__cuda_arch_bin "2.0 2.1(2.0)")elseif(CUDA_GENERATION STREQUAL "Kepler")
改为
set(__cuda_arch_ptx "")if(CUDA_GENERATION STREQUAL "Fermi")set(__cuda_arch_bin "2.0")elseif(CUDA_GENERATION STREQUAL "Kepler")set(__cuda_arch_bin "3.0 3.5 3.7")elseif(CUDA_GENERATION STREQUAL "Maxwell")set(__cuda_arch_bin "5.0 5.2")elseif(CUDA_GENERATION STREQUAL "Pascal")set(__cuda_arch_bin "6.0 6.1")elseif(CUDA_GENERATION STREQUAL "Volta")set(__cuda_arch_bin "7.0")elseif(CUDA_GENERATION STREQUAL "Turing")set(__cuda_arch_bin "7.5")
【第五步】
在第5步中,OpenCV2.4.13的common.hpp文件在路径opencv/build/include/opencv2/gpu/device中
【随后】
打开Cmake准备编译,选好文件路径以及系统后,
点击configure,然后检查with_CUDA是否勾上,没有勾上的话需要勾上;
然后根据自己的显卡修改下图两个位置(与之前在第四步中要对应),比如说我安装的显卡为RTX2060s,算力为7.5,所以都修改为7.5
再点击Configure,如果出现上图中红字的warning:
CMake Warning at cmake/OpenCVPackaging.cmake:23 (message):
CPACK_PACKAGE_VERSION does not match version provided by version.hpp
header! Call Stack (most recent call first): CMakeLists.txt:1105
(include)
那就还需要修改一个地方:在OpenCVPackaging.cmake文件中的set(CPACK_PACKAGE_VERSION "${OPENCV_VCSVERSION}")
上面添加
set(OPENCV_VCSVERSION "2.4.13.6")
根据自己的版本进行修改
(这里参考了https://blog.csdn.net/qq_41598072/article/details/100665769)
再点击Configure, 如果还有Warning针对具体Warning解决。
然后点击Generate 生成,成功生成后Open Project,会自动打开VS,右键ALL_BUILD进行生成,(注意会不会报错,有报错的话要及时停下来)等待两个小时后。。再右键INSTALL生成,这就编译好了,之后就剩配置环境了。
配置可以参考其他博客或者这个:https://blog.csdn.net/qq_38574198/article/details/109549322