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


之前有编译过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模块后编译的速度真的超级慢!)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM