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