CMake + mingw + opencv

embedded/2024/11/23 19:51:56/

由于是在windows下开发,因此下载的是windows版本的安装程序,如图:

下载的是 MSVC 编译的 OpenCV,但由于我一般使用的是JetBrains的开发工具,并且为了方便跨平台,我一般也是使用cmake+mingw编译,这就造成了工具链的不同,编译的时候会报错,这时候就需要自己手动用MinGw编译源码。

准备工具

一 .OpenCV:  下载地址

二 .CMake:下载地址

三 .Mingw:  下载地址

 

 

 完成后点击下方的Configure按钮,并选择类型为 MinGW Makefiles,后点击Finish

稍等一会儿,编译完了就会出现很多红色的这里不用担心 。再次点击Configure之后红色就会消失。之后点击Generate就好了。

这里就Cmake就可以关掉了,打开CMD命令行 Cd到刚刚OpenCV的建立的文件夹mingw build 输入命令 这里的j6是指使用6核加速编译 如果电脑核心多的话可以增加或减少。

mingw32-make -j 8

 mingw32-make install

 将opencv的bin文件加入环境变量 ,到此外部的配置已全部OK

F:\opencv\mingw-build\install\x64\mingw\bin

打开CMakeLists修改如下:

cmake_minimum_required(VERSION 3.10)project(opencv)set(CMAKE_CXX_STANDARD 14)set(OpenCV_DIR F:/opencv/mingw-build/install)#mingw
#set(OpenCV_DIR F:/opencv/build) #msvcfind_package(OpenCV REQUIRED)message("OpenCV include dir : " {OpenCV_INCLUDE_DIRS})
message("OpenCV libs : " {OpenCV_LIBS})# 包含OpenCV头文件
include_directories(${OpenCV_INCLUDE_DIRS})# 添加可执行文件
add_executable(${PROJECT_NAME} main.cpp)# 链接OpenCV库
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

 结束。

参考文章:

https://juejin.cn/post/7250012486992216121

https://blog.csdn.net/ifeng12358/article/details/132686117

Windows安装OpenCV——利用MinGW+CMake从源码编译_cmake来编译opencv mingw-CSDN博客


http://www.ppmy.cn/embedded/139924.html

相关文章

Django如何配置多个环境的MySQL数据库

在 Django 项目中配置多个环境的 MySQL 数据库是一个常见的需求,特别是在开发、测试和生产环境中使用不同的数据库配置。你可以通过在 settings.py 文件中使用条件语句或环境变量来实现这一点。 1. 使用环境变量 使用环境变量是一种灵活且安全的方式来配置多个环境…

数据结构(一)链表

目录 链表 单向链表 单向链表结构与基本操作 插入节点 删除节点 搜索节点 遍历链表 反转链表 双向链表 双向链表结构与基本操作 节点定义和创建 插入节点 删除节点 搜索节点 遍历链表 转链表反 在开始讲线性表之前,先给各位读者重新回顾一下链表 链…

算法学习笔记(九):网格图DFS、图论算法DFS、动态规划DP、贪心

一.网格图DFS 适用于需要计算连通块个数、大小的题目 1.岛屿数量 给你一个由 1(陆地) 和 0(水)组成的二维网格,请你计算网格中岛屿的数量 岛屿总是被水包围,并且每座岛屿只能由水平方向和\或竖直方向上相邻的陆地连接形成 此外&…

Day10_CSS过度动画

Day10_CSS过度动画 背景 : PC和APP项目我们已经开发完毕, 但是再真正开发的时候有些有些简易的动态效果我们可以使用CSS完成 ; 本节课我们来使用CSS完成基础的动画效果 今日学习目标 CSS3过度CSS3平面动态效果CSS3动画效果案例 1. CSS3过渡 ​ 含义 :过渡指的是元素从一种…

中断的详细流程

一、中断请求 中断请求是中断过程的起始阶段,由需要CPU服务的外设(中断源)向CPU发出请求信号。这个信号可以是电平信号或边沿信号,具体取决于中断系统的设计和中断源的类型。 二、中断判优 当系统中存在多个中断源时&#xff0…

QT 线程 QThread QT5.12.3环境 C++实现

一、线程 QT主线程称为GUI线程,负责初始化界面并监听事件循环,并根据事件处理做出界面上的反馈。如果把一些比较复杂或者费时的操作放在主线程中,界面就会出现卡顿或者无响应的现象。一般主线程负责影响界面上的操作, 子线程负责负…

界面控件DevExpress WPF中文教程:网格视图数据布局的列和卡片字段

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

redis-击穿、穿透、雪崩

击穿、穿透、雪崩经常听人说吧? 那他到底是啥呢?无非就是在有缓存层的情况下,对各种绕过缓存层从而直接落到了DB上的情况进行的分类。 概念性的东西大概如下,我是记不住,后期具体使用与规避这些问题才是大事&#xff…