当前位置: 首页 > news >正文

mingw编译opencv

我这里是msys2

这个是msys2的教程
https://blog.csdn.net/qq_39942341/article/details/105931335?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167821146216800197067008%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167821146216800197067008&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-105931335-null-null.blog_rank_default&utm_term=msys2&spm=1018.2226.3001.4450

msys2

这里用msys2直接装
配置一下msys2的环境变量(教程里有)
装qt6,将C:\Qt\6.4.2\mingw_64\bin加入环境变量(不知道msvc的能不能用)
(qt6这个可以极端一点,直接想办法下载dll,但是我懒得尝试)

pacman -S mingw-w64-x86_64-opencv

在这里插入图片描述
接着测试
main.cpp

#include <iostream>
#include <string>
#include <opencv2/opencv.hpp>int main() {cv::Mat img = cv::imread("E:\\opencv_test\\test.jpg");cv::imshow("img", img);cv::waitKey(0);cv::destroyAllWindows();return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0.0)
project(OpenCV_test VERSION 0.1.0)IF(NOT CMAKE_BUILD_TYPE)SET(CMAKE_BUILD_TYPE Release)
ENDIF()add_executable(${PROJECT_NAME} main.cpp)# Where to find CMake modules and OpenCV
#set(OpenCV_DIR "D:\\opencv-4.5.5\\opencv-4.5.5\\build")
find_package(OpenCV REQUIRED)message(STATUS "OpenCV Include: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV Libs: ${OpenCV_LIBRARIES}")INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME}  ${OpenCV_LIBS})

打开cmd/powershell

mkdir build
cd build
cmake -G "MinGW Makefiles" ..
mingw32-make
.\OpenCV_test.exe

懒人版

https://gitee.com/kirigaya/opencv_built_by_gcc_on_-windows
https://github.com/huihut/OpenCV-MinGW-Build

下了之后,需要设置环境变量D:\opencv-4.5.5\opencv-4.5.5\build\x64\mingw\bin
(就是\x64\mingw\bin)

接着测试
除了cmake,剩下的和上面一样
CMakeLists.txt
与上一个的区别就是set(OpenCV_DIR)这一行

cmake_minimum_required(VERSION 3.0.0)
project(OpenCV_test VERSION 0.1.0)IF(NOT CMAKE_BUILD_TYPE)SET(CMAKE_BUILD_TYPE Release)
ENDIF()add_executable(${PROJECT_NAME} main.cpp)# Where to find CMake modules and OpenCV
set(OpenCV_DIR "D:\\opencv-4.5.5\\opencv-4.5.5\\build")
find_package(OpenCV REQUIRED)message(STATUS "OpenCV Include: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV Libs: ${OpenCV_LIBRARIES}")INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME}  ${OpenCV_LIBS})

源码

暂时没成功

我这里mingw是用msys2装的

配置一下msys2的环境变量(教程里有)
装qt6,将C:\Qt\6.4.2\mingw_64\bin加入环境变量(不知道msvc的能不能用)
cmake加入环境变量(要比msys高

去官网下sources
https://opencv.org/releases/
选择sources
我这里选的4.5.5
在这里插入图片描述

在这里插入图片描述

在这个目录打开cmd/powershell

mkdir build
mkdir mingw_build
cd mingw_build
cmake -G "MinGW Makefiles" .. -DCMAKE_INSTALL_PREFIX="../build" -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_python_tests=OFF -DOPENCV_DOWNLOAD_MIRROR_ID=gitcode -DBUILD_TIFF=ON -DOPENCV_GENERATE_PKGCONFIG=ON -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=OFF -DWITH_CUDA=OFF -DWITH_VTK=OFF -DWITH_MATLAB=OFF -DCMAKE_CXX_COMPILER=g++ -DWITH_QT=ON -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_MSMF=OFF -DWITH_IPP=OFF -DWITH_OPENGL=ON -DBUILD_JAVA=OFF -DOPENCV_ENABLE_ALLOCATOR_STATS=OFF -DWITH_MSMF=OFF -DWITH_ZLIB=ON -DBUILD_ZLIB=ON

接着

cmake-gui

不要tests
在这里插入图片描述
不要java
在这里插入图片描述
要opengl
在这里插入图片描述
不要ENABLE_PRECOMPILED_HEADERS
在这里插入图片描述
不要WITH_MSMF
在这里插入图片描述
不要WITH_IPP
在这里插入图片描述
不要OPENCV_ENABLE_ALLOCATOR_STATS
在这里插入图片描述
不要java
在这里插入图片描述

要qt
在这里插入图片描述
点configure直到没有红的
然后点generate

General configuration for OpenCV 4.5.5 =====================================Version control:               unknownPlatform:Timestamp:                   2023-03-08T03:26:07ZHost:                        Windows 10.0.19045 AMD64CMake:                       3.26.0-rc1CMake generator:             MinGW MakefilesCMake build tool:            C:/msys64/mingw64/bin/mingw32-make.exeConfiguration:               ReleaseCPU/HW features:Baseline:                    SSE SSE2 SSE3requested:                 SSE3Dispatched code generation:  SSE4_1 SSE4_2 FP16 AVX AVX2 AVX512_SKXrequested:                 SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKXSSE4_1 (16 files):         + SSSE3 SSE4_1SSE4_2 (1 files):          + SSSE3 SSE4_1 POPCNT SSE4_2FP16 (0 files):            + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 AVXAVX (4 files):             + SSSE3 SSE4_1 POPCNT SSE4_2 AVXAVX2 (31 files):           + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2AVX512_SKX (5 files):      + SSSE3 SSE4_1 POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKXC/C++:Built as dynamic libs?:      YESC++ standard:                11C++ Compiler:                C:/msys64/mingw64/bin/g++.exe  (ver 12.2.0)C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUGC++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUGC Compiler:                  C:/msys64/mingw64/bin/cc.exeC flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -O3 -DNDEBUG  -DNDEBUGC flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -fomit-frame-pointer -ffunction-sections -fdata-sections  -msse -msse2 -msse3 -fvisibility=hidden -g  -O0 -DDEBUG -D_DEBUGLinker flags (Release):      -Wl,--gc-sections  Linker flags (Debug):        -Wl,--gc-sections  ccache:                      NOPrecompiled headers:         NOExtra dependencies:3rdparty dependencies:OpenCV modules:To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo stitching video videoioDisabled:                    java_bindings_generator python_bindings_generator python_tests worldDisabled by dependency:      -Unavailable:                 java python2 python3 tsApplications:                appsDocumentation:               NONon-free algorithms:         NOWindows RT support:            NOGUI:                           QT6QT:                          YES (ver 6.4.2 )QT OpenGL support:         YES (Qt6::OpenGL )Win32 UI:                    YESOpenGL support:              YES (opengl32 glu32)Media I/O: ZLib:                        zlib (ver 1.2.11)JPEG:                        build-libjpeg-turbo (ver 2.1.2-62)WEBP:                        build (ver encoder: 0x020f)PNG:                         build (ver 1.6.37)TIFF:                        build (ver 42 - 4.2.0)JPEG 2000:                   build (ver 2.4.0)OpenEXR:                     OpenEXR::OpenEXR (ver 3.1.5)HDR:                         YESSUNRASTER:                   YESPXM:                         YESPFM:                         YESVideo I/O:DC1394:                      NOFFMPEG:                      YES (prebuilt binaries)avcodec:                   YES (58.134.100)avformat:                  YES (58.76.100)avutil:                    YES (56.70.100)swscale:                   YES (5.9.100)avresample:                YES (4.0.0)GStreamer:                   YES (1.22.1)DirectShow:                  YESParallel framework:            noneTrace:                         YES (built-in)Other third-party libraries:Lapack:                      NOEigen:                       YES (ver 3.4.0)Custom HAL:                  NOProtobuf:                    build (3.19.1)OpenCL:                        YES (no extra features)Include path:                D:/opencv-4.5.5/opencv-4.5.5/3rdparty/include/opencl/1.2Link libraries:              Dynamic loadPython (for build):            NOInstall to:                    D:/opencv-4.5.5/opencv-4.5.5/build
-----------------------------------------------------------------
mingw32-make clean
mingw32-make -j 12

然后我就死在这了

mingw32-make[2]: *** No rule to make target 'zlib', needed by 'bin/libopencv_imgcodecs455.dll'.  Stop.
mingw32-make[1]: *** [CMakeFiles\Makefile2:1823: modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/all] Error 2
mingw32-make: *** [Makefile:165: all] Error 2

https://zhuanlan.zhihu.com/p/606873516
https://zhuanlan.zhihu.com/p/488401407

相关文章:

mingw编译opencv

我这里是msys2 这个是msys2的教程 https://blog.csdn.net/qq_39942341/article/details/105931335?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167821146216800197067008%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&requ…...

数据结构(八)排序

一、排序的概念以及引用概念排序&#xff1a;所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的操作。稳定性&#xff1a;假定在待排序的记录序列中&#xff0c;存在多个具有相同的关键字的记录&#xff0c;…...

函数习题:用函数实现判断一个整数是否能被n整除

Description 输入一组整数&#xff0c;输入0结束&#xff08;这组整数不包含0&#xff09;&#xff0c;输出其中能被n整除的所有整数之和&#xff08;n为整数&#xff0c;不用考虑n为0的情况&#xff09;&#xff0c; n及这组整数均由键盘输入。首先输入n&#xff0c;再输入一…...

SAP 创建会计冲销凭证

“功能描述&#xff1a;根据传输过来数据创建会计冲销凭证&#xff0c;并返回消息和状态 *”---------------------------------------------------------------------- "“本地接口&#xff1a; *” IMPORTING *" VALUE(IW_ZTFKCX0010) TYPE ZTFKCX0010 *" EXP…...

Jetson(Ubuntu18.04)设备无法ping通百度能ping通局域网错误集合,(神奇的是这样的情况下Todesk等远程确没有问题)

一、.打开DNS,意思是取消注释添加114.114.114.114 &#xff0c;文件如下 vim /etc/systemd/resolved.conf [Resolve] #DNS #FallbackDNS #Domains #LLMNRno #MulticastDNSno #DNSSECno #Cacheyes #DNSStubListeneryes然后重启服务sudo systemctl restart systemd-resolved.se…...

Spring的@Conditional注解

前言Conditional是Spring4新提供的注解&#xff0c;它的作用是按照一定的条件进行判断&#xff0c;满足条件给容器注册bean。Conditional的源码定义&#xff1a;//此注解可以标注在类和方法上 Target({ElementType.TYPE, ElementType.METHOD}) Retention(RetentionPolicy.RUNTI…...

剑指 Offer 67 把字符串转换成整数

摘要 面试题67. 把字符串转换成整数 一、字符串解析 根据题意&#xff0c;有以下四种字符需要考虑&#xff1a; 首部空格&#xff1a; 删除之即可&#xff1b;符号位&#xff1a;三种情况&#xff0c;即 , − , 无符号"&#xff1b;新建一个变量保存符号位&#xff0…...

【教学典型案例】18.开门小例子理解面向对象

目录一&#xff1a;背景介绍业务场景&#xff1a;业务分析&#xff1a;二&#xff1a;实现思路1、面向过程&#xff1a;2、面向对象&#xff08;抽象、封装、继承、多态&#xff09;3、面向对象&#xff08;抽象、封装、继承、多态、反射&#xff09;三&#xff1a;实现过程1、…...

Linux环境ENV的概念

一、基本概念 环境变量的含义&#xff1a;程序&#xff08;操作系统命令和应用程序&#xff09;的执行都需要运行环境&#xff0c;这个环境是由多个环境变量组成的。 按变量的周期划为永久变量和临时性变量2种&#xff1a; 永久变量&#xff1a;通过修改配置文件&#xff0c…...

AcWing数据结构 - 数据结构在算法比赛中的应用(下)

目录 Trie树 Trie字符串统计 最大异或对 并查集 合并集合 连通块中点的数量 食物链 堆 堆排序 模拟堆 哈希表 模拟散列表 字符串哈希 Trie树 Trie字符串统计 思路&#xff1a; 设 idx索引用于构建树&#xff0c; 结点son[节点位置][节点分支指针]&#xff0c;cnt[]记录单…...

基于嵌入式libxml2的ARM64平台的移植(aarch64)

由于libxml在移植过程中依赖于zlib的库文件&#xff0c;因此本节内容包含zlib&#xff08;V1.2.13&#xff09;的移植libxml2(V2.10.3)的移植两部分组成。 &#xff08;一&#xff09;zlib的移植&#xff08;基于arm64&#xff09; 1、在github上下载zlib的最新源码压缩包&am…...

8. 字符串转换整数 (atoi)

题目描述 给你一个 32 位的有符号整数 x &#xff0c;返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] &#xff0c;就返回 0。 假设环境不允许存储 64 位整数&#xff08;有符号或无符号&#xff09;。 示例 1&#x…...

[Tomcat]解决IDEA中的Tomcat中文乱码问题

目录 1、IDEA 2、VM options 3、IDEA启动程序的存放目录 4、Tomcat 写在前面&#xff1a;此方法亲测有效&#xff01;&#xff01;&#xff01; 1、IDEA 2、VM options 加上这两行&#xff1a; -Dfile.encodingUTF-8 -Dconsole.encodingUTF-8 3、IDEA启动程序的存放目录…...

python之dataclasses

一、场景 dataclasses模块提供了一种方便的方法来创建和管理数据对象 它可以帮助开发者更容易地创建简单的类&#xff0c;同时提供了一些实用的功能&#xff0c;例如自动实现__init__()、repr()、eq()等方法。 数据容器&#xff1a;如果您需要一个简单的类来存储一些数据&…...

【MapGIS精品教程】007:MapGIS投影变换案例教程

MapGIS投影变换,包括创建坐标系、定义投影、单点投影、类投影、批量投影。 文章目录 一、创建坐标系1. 创建高斯平面坐标系2. 创建阿尔伯斯投影二、定义投影三、投影变换1. 单点投影2. 类投影3. 批量投影一、创建坐标系 在MagGIS数据库中,有个空间参考系的文件夹,内置了常见…...

list数据根据属性字段去重

/*** 根据照片名称去重*/fun duplicateRemoval(list: MutableList<MediaBean>): MutableList<MediaBean>? {val mediaBeanList: MutableSet<MediaBean> if (Build.VERSION.SDK_INT > Build.VERSION_CODES.N) {TreeSet(Comparator.comparing(MediaBean::f…...

java教程(2023-3-8)

第一章&#xff1a;HelloWorld 1.java语言介绍 public class MainTest {public static void main(String[] args) { //软件分为系统软件和应用软件 //人机交互方式&#xff1a; 图形化界面 命令行方式/*常用的DOS命令&#xff1a;1.切换盘符&#xff1a;盘符 :2.创建文件夹m…...

node 配置 vue npm配置

下载node 版本16https://nodejs.org/download/release/v16.16.0/node-v16.16.0-x64.msi复制安装地址&#xff0c;省空间&#xff0c;生报错老老实实复制就好D:\Program\nodejs新建node_cache和node_globalD:\Program\nodejs\node_cacheD:\Program\nodejs\node_global运行命令np…...

特斯拉、小鹏开路,城市NOA距好用还有几年?

作者 | Marshall 编辑 | 张祥威一项新技术&#xff0c;狂热的技术开发者往往会高估其发展速度&#xff0c;认为当下偶尔发生的安全问题&#xff0c;会随着数据积累和功能迭代被逐渐解决。 他们往往会说&#xff0c;“这个问题没有包含在我们的场景库中&#xff0c;但现在我们知…...

Vue 3第九章:WatchEffect高级侦听器

文章目录1. WatchEffect高级侦听器1.1. 使用 watchEffect 函数1.2. 停止侦听1.3. 侦听多个状态1.4. 懒执行总结1. WatchEffect高级侦听器 在 Vue 3 中&#xff0c;我们可以使用 watchEffect 函数来创建高级侦听器。与 watch 和 computed 不同&#xff0c;watchEffect 不需要指…...

基尔代尔 才是天才吗

是的&#xff0c;如果“天才”指的是那种从无到有、定义整个行业基本框架的开创者&#xff0c;那么加里基尔代尔&#xff08;Gary Kildall&#xff09;无疑是真正的天才。如果说蒂姆帕特森是一位顶级的“实现者”&#xff0c;那基尔代尔就是站在更高维度上的“奠基人”。他与帕…...

LPC2000复位行为解析与调试技巧

1. 理解LPC2000设备的复位行为问题 在嵌入式开发中&#xff0c;复位操作是最基础也是最重要的调试手段之一。当我们使用Keil MDK配合ULINK调试器对Philips&#xff08;现NXP&#xff09;LPC2000系列ARM微控制器进行调试时&#xff0c;可能会遇到一个看似简单却令人困惑的现象&a…...

ISP模型与硬件平台配置迁移实践指南

1. 理解ISP模型与硬件平台的配置迁移在图像信号处理器&#xff08;ISP&#xff09;开发过程中&#xff0c;我们经常需要在软件模型和实际硬件平台之间进行配置迁移。这种迁移的核心挑战在于确保模型仿真结果与硬件输出完全一致。根据我的经验&#xff0c;这涉及到两个主要操作模…...

回归模型.

...

终极指南:如何免费快速上手Method Draw在线SVG编辑器

终极指南&#xff1a;如何免费快速上手Method Draw在线SVG编辑器 【免费下载链接】Method-Draw Method Draw, the SVG Editor for Method of Action 项目地址: https://gitcode.com/gh_mirrors/me/Method-Draw 如果你正在寻找一款简单高效的在线SVG编辑器&#xff0c;那…...

PS5 NOR修改器终极指南:简单三步修复你的游戏主机

PS5 NOR修改器终极指南&#xff1a;简单三步修复你的游戏主机 【免费下载链接】PS5NorModifier The PS5 Nor Modifier is an easy to use Windows based application to rewrite your PS5 NOR file. This can be useful if your NOR is corrupt, or if you have a disc edition…...

【Web安全】-企业资产信息收集(1):信息收集介绍,域名信息收集,主域名查询,ICP备案号查询,备案实体查询,工业和信息化部政务服务平台查询,怎样收集

&#x1f986; 个人主页&#xff1a;深邃- ❄️专栏传送门&#xff1a;《C语言》《数据结构与算法》《Web安全》 &#x1f31f;Gitee仓库&#xff1a;《C语言》《数据结构与算法》 特此声明&#xff1a;本次信息收集均在日期授权时间内收集&#xff0c;并且都将所有人员信息打…...

Kubernetes DaemonSet深度解析:管理集群守护进程的最佳实践

Kubernetes DaemonSet深度解析&#xff1a;管理集群守护进程的最佳实践 一、DaemonSet概述 DaemonSet 是Kubernetes中用于在集群的每个节点上运行一个Pod副本的控制器。它确保所有节点&#xff08;或满足特定条件的节点&#xff09;都运行该Pod的一个实例。 1.1 DaemonSet应…...

【咨询业AI Agent应用成熟度评估模型】:基于217家机构实测数据的4级能力图谱与升级路线图

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;【咨询业AI Agent应用成熟度评估模型】&#xff1a;基于217家机构实测数据的4级能力图谱与升级路线图 本模型基于对全球217家管理咨询、战略咨询与数字化转型服务商的实地调研与系统性能力测评&#xff0c;覆…...

使用Node.js和Taotoken快速构建一个智能客服聊天接口

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Node.js和Taotoken快速构建一个智能客服聊天接口 本教程面向具备Node.js基础的后端开发者&#xff0c;旨在指导你如何使用Open…...