热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

opencv源码编译碰到的一堆坑(opencv4.2.0+cuda11.5+cmake3.21.5+vs2019+window11)

之前有编译过opencv,当时没有添加cuda模块,很轻松就成功了,这次添加完cuda后发现一直编译不成功。一、下载opencvhttps:opencv.orgreleases 这

之前有编译过opencv,当时没有添加cuda模块,很轻松就成功了,这次添加完cuda后发现一直编译不成功。

一、下载opencv

https://opencv.org/releases/  这里我下载的版本为4.2.0

二、下载opencv-contrib

https://gitee.com/opencv-lhd/opencv_contrib/tags 与下载的opencv版本对应

 

 

三、下载cmake

https://cmake.org/download/ 这里我下载的3.21.5

注意如果需要下载之前的版本下拉点这里即可

四、下载cuda

https://developer.nvidia.com/cuda-downloads 这里我下载的11.5版本

五、用cmake编译opencv

这里有很多写的比较好的博客可以参考: https://cloud.tencent.com/developer/article/1695383

首次编译会出现各种需要的下载的 ffmpeg ippicv等下载失败的情况,需要我们手动(FQ)下载,然后替换到

opencv4.2.0\sources\.cache\ffmpeg 等目录里的0kb的一些文件,这里不做赘述,可以参考:https://zhuanlan.zhihu.com/p/112788083

 

后面需要配置 OPENCV_EXTRA_MODULES_PATH

勾选 WITH_CUDA,如果要应用opencv的sift算法,则还需要将OPENCV_ENABLE_NONFREE勾选上

 configure后再generate,如果没有报错就可以打开vs生成了

六、VS2019生成install

这里是我遇到的一个大坑,需要仔细看编译时的输出控制台的error(我当时没有仔细看导致一直没有发现错误)


如果发现 nvcc fatal : Unsupported gpu architecture ‘compute_30‘ 错误

那么恭喜你可以从我这里找到答案了,因为cuda 11已经废弃 compute_30了,所以需要把compute_30给去掉,那么要怎么去掉呢

我们需要重新回到cmake,找到CUDA_ARCH_BIN,需要把这里的3.0删掉之后再重新generate

 

 

 之后重新打开项目,重新生成,就只剩下漫长的等待了(os: 添加gpu模块后编译的速度真的超级慢!)

 



推荐阅读
author-avatar
怎么又是你呀
你讲话咧,撸起袖子加油干!!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有