使用mingw编译opencv遇到的各种问题

本文详细记录了在Windows环境下使用Mingw编译OpenCV时遇到的问题,包括源码下载失败、CUDA支持失效、QT库链接错误以及安装时的路径冲突。针对这些问题,提供了相应的解决策略,如修改URL以解决下载问题,明确指出 Mingw 不支持CUDA编译,以及调整QT库路径来解决32位与64位库的不兼容问题。
摘要由CSDN通过智能技术生成

使用mingw编译opencv遇到的各种问题

配置选项上

勾选 build_opencv_world
不勾选 WITH_OPENCL_D3D11_NV
不勾选 WITH_IPP
不勾选 ENABLE_PRECOMPILED_H
勾选 with_openGL
勾选 with_opennmp

剩下的看需求

文件下载失败

最简单的办法就是下载一个VScode 然后分别打开opencv源码和opencv_contribude 用VScode全局查找 https://raw.githubusercontent.com 然后全局替换成 https://raw.staticdn.net
这个时候ffmpeg的几个文件还是会报错,下载不了,把https://raw.staticdn.net又换成https://raw.githubusercontent.com再试试,还不行打开你的build目录下的CMakeDownloadLog.txt的日志(里面可能东西很多 全都删了然后重新cmake执行一遍configure,然后重新打开这个文件里面东西就少了就剩下你没下载下来的几个文件的记录了),里面会记录从哪个网站下载什么东西,然后要放到你本地的哪里,直接复制url尝试一下粘贴到浏览器里面直接通过浏览器下载(一般是开了**通过浏览器就下载下来了)

编译带有cuda

一直想尝试通过mingw的g++试试编译带有cuda的版本,然后一直报错:
CMake Warning at cmake/OpenCVFindLibsPerf.cmake:45 (message):
OpenCV is not able to find/configure CUDA SDK (required by WITH_CUDA).
CUDA support will be disabled in OpenCV build.
To eliminate this warning remove WITH_CUDA=ON CMake configuration option.
Call Stack (most recent call first): CMakeLists.txt:703 (include)
用mingw在windows平台编译是不用想了,可以点开cmake/OpencvDetectCUDA.cmake里面第一行就说了

if((WIN32 AND NOT MSVC) OR OPENCV_CMAKE_FORCE_CUDA)
  message(STATUS "CUDA compilation is disabled (due to only Visual Studio compiler supported on your platform).")
  return()
endif()  

意思就是win平台下乖乖使用msvc编译cuda

WITH_QT

CMakeFiles\opencv_world.dir/objects.a(zoomableimage.cpp.obj):zoomableimage.cpp:(.text$_ZN3cvv6qtutil13ZoomableImage14emitUpdateAreaEv+0x61): undefined reference to cvv::qtutil::ZoomableImage::updateArea(QRectF, double) const
这个问题有两个选择,一个是去掉build_opencv_cvv , 或者是另一个是去掉build_opencv_world

还有就是make执行完了,install时报错

我配置的是使用qt64版本的库,我的电脑上Qt5.12.12同时安装有miniconda,在系统环境变量的PATH中有miniconda,第一次cmake配置的时候会默认检测到qt5的路径是miniconda下的qt5(为miniconda会有没多想),然后手动改成了QT5.12.12.执行minigw32-make.exe的时候很顺利,但是mingw32-make.exe install的时候报错了,大概类似这种:
在这里插入图片描述
具体解决办法是把你的qt库的路径也添加到PATH当中,而且要放到miniconda环境的上面.
像我的就是这样:
在这里插入图片描述
具体原因呢应该是32位的库和64位的库不太兼容? 我编译的时候选用的QT5的是64位的,
在这里插入图片描述
miniconda中应该是32位的?不是很清楚了.
然后重新configure…

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值