使用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 然后全局替换成 https://raw.staticdn
这个时候ffmpeg的几个文件还是会报错,下载不了,把https://raw.staticdn
又换成https://raw.githubusercontent
再试试,还不行打开你的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…
更多推荐
使用mingw编译opencv遇到的各种问题
发布评论