用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part I
用Cmake build OpenCV后,在VS中查看OpenCV源码的方法
Part I
写在最前面,最近这段时间的工作需要用opencv,不仅是调包,还要能够看到opencv的源码。然后就跟着网上的教程实现了一遍,在实现过程中,遇到了不少问题,现一一记录下来。(最近的工作和生活都很难。。。也充满了挑战。但我依然要维持自己创作文章的动机,希望能够帮到更多的人。)
1,下载
Releases - OpenCVOpenCV官网:Releases - OpenCV

Download | CMakeCmake官网:Download | CMake

2,安装
把下载好的opencv-4.8.0.zip,解压到D盘新建的一个名叫“opencv480”的文件夹中。


cmake的安装注意一下这个选项就行了。

3,用cmake build openCV
3,1 在放置opencv文件的相同目录下,创建一个新的文件夹"opencv480_build"用于保存build后的数据。

3.2打开刚刚安装好的camke,并选择正确的路径
第一个是我们要build的源文件,来自于openCV官方压缩包中的source文件夹。
下面那个where to build the binaries就配置我们刚刚新建的那个文件夹"Rebuild_sources"。

3.3 然后选择 configure

3.4 选择对应的VS版本,我的是2022

选择平台x64


然后点击Finish,Cmake就开始自动配置了。

4,配置完成。

虽然cmake完成了配置,但在配置的过程中也出现了很多红色的警告和错误。所有这些错误都会保存到"opencv480_build"文件夹下的“CMakeDownloadLog.txt”中。

5,消除configure中遇到的问题
打开这个log,我们一个个的解决。
5.1,ippicv_2021.8_win_intel64_20230330_general.zip
先看第一个(看不清的点击图像放大看),复制他给的这个网址,然后下载下来一个叫“ippicv_2021.8_win_intel64_20230330_general.zip”的文件。

把这个文件放在.cache文件夹下。

然后再把这个文件改成他说的这个“71e4f......”文件名后,并放在相应目录下。

替换掉原来的同名文件

然后在重新点击configure,并查看最新生成的log。

这时,系统提示mach上了,说明第一个问题解决了。

5.2,log显示缺少这个文件"v0.1.2a.zip"

同样,去log中提供的网址下载,更名后放到他指定的目录下。

然后重新执行configure,并查看新的log,发现第二个问题也修复了。

5.3 找不到opencv_videoio_ffmpeg.dll
根据系统提供的网址下载下来后,更名,覆盖.cache\ffmpeg中的旧文件。

并把未改名的源文件放到.cache的目录下。

5.4 opencv_videoio_ffmpeg_64.dll
操作同上


成功,就剩最后一个了
5.5 ffmpeg_version.cmake
这个文件的下载跟前面的几个都不一样,在网页空白处点击鼠标右键,选择另存为。

把下载后的文件,重命名为这个文件名,并保存到指定的目录中。
同样,更换文件名,并放在这个目录下。

单击configure,log显示全部通过了。

6,单击generate。


generate成功后,在之前创建的“opencv480_build”文件夹中会出现一个叫“OpenCV.sln”的文件。

(全文完)
作者 --- 松下J27
参考文献(鸣谢):
1,Download | CMake
2,OpenCV - Open Computer Vision Library
版权声明:文中的部分图片,文字或者其他素材,可能来自很多不同的网站和说明,在此没法一一列出,如有侵权,请告知,立即删除。欢迎大家转载,但是,如果有人引用或者COPY我的文章,必须在你的文章中注明你所使用的图片或者文字来自于我的文章,否则,侵权必究。 ----松下J27
相关文章:
用Cmake build OpenCV后,在VS中查看OpenCV源码的方法(环境VS2022+openCV4.8.0) Part I
用Cmake build OpenCV后,在VS中查看OpenCV源码的方法 Part I 写在最前面,最近这段时间的工作需要用opencv,不仅是调包,还要能够看到opencv的源码。然后就跟着网上的教程实现了一遍,在实现过程中,遇到了不少…...
如何使用Docker搭建ZooKeepe集群
1、拉取镜像 # docker pull zookeeper:3.7.12、创建网络 Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。在实际部署中,需要指定容器ip,不允许其自行分配ip,尤其在搭建集群时。可以通过docker netw…...
【javaweb】学习日记Day3 - Ajax 前后端分离开发 入门
目录 一、Ajax 1、简介 2、Axios (没懂 暂留) (1)请求方式别名 (2)发送get请求 (3)发送post请求 (4)案例 二、前端工程化 1、Vue项目-目录结构 2、…...
SQL注入漏洞复现:探索不同类型的注入攻击方法
这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。 准备环境 sqlilabs靶场 安装:详细安装sqlmap详细教程_sqlmap安装教程_mingzhi61的博客-CSDN博客 一、基于错误的注入 注入讲解 介绍 基于错误的注入(Err…...
大彩串口屏使用记录
写在最前面 屏幕型号 DC10600M070 IDE VisualTFT(官方) VSCode(lua编程) 用之前看一下官方那个1小时的视频教程就大概懂控件怎么用了,用官方的软件VisualTFT很简单 本文只是简单记录遇到的一些坑 lua编辑器 VisualTF…...
Qt http 的认证方式以及简单实现
http 的认证方式 基本认证(Basic Authentication): 基本认证是最简单的HTTP认证方式。客户端在请求头中使用Base64编码的用户名和密码进行身份验证由于仅使用Base64编码,基本认证并不安全,因此建议与HTTPS一起使用,以…...
【图像分割】实现snake模型的活动轮廓模型以进行图像分割研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【MongoDB系列】1.MongoDB 6.x 在 Windows 和 Linux 下的安装教程(详细)
本文主要介绍 MongoDB 最新版本 6.x 在Windows 和 Linux 操作系统下的安装方式,和过去 4.x 、5.x 有些许不同之处,供大家参考。 Windows 安装 进入官网下载 Mongodb 安装包,点此跳转,网站会自动检测当前操作系统提供最新的版本&…...
5.网络原理之初识
文章目录 1.网络发展史1.1独立模式1.2网络互连1.3局域网LAN1.3.1基于网线直连1.3.2基于集线器组建1.3.3基于交换机组建1.3.4基于交换机和路由器组建1.3.4.1路由器和交换机区别 1.4广域网WAN 2.网络通信基础2.1IP地址2.2端口号2.3认识协议2.4五元组2.5 协议分层2.5.1 分层的作用…...
【Linux】进程状态|僵尸进程|孤儿进程
前言 本文继续深入讲解进程内容——进程状态。 一个进程包含有多种状态,有运行状态,阻塞状态,挂起状态,僵尸状态,死亡状态等等,其中,阻塞状态还包含深度睡眠和浅度睡眠状态。 个人主页ÿ…...
ASEMI快恢复二极管APT80DQ60BG特点应用
编辑-Z APT80DQ60BG参数描述: 型号:APT80DQ60BG 最大峰值反向电压(VRRM):600V 最大直流阻断电压VR(DC):600V 平均整流正向电流(IF):80A 非重复峰值浪涌电流(IFSM):600A 工作接点温度和储存温度(TJ, …...
【Python爬虫】使用代理ip进行网站爬取
前言 使用代理IP进行网站爬取可以有效地隐藏你的真实IP地址,让网站难以追踪你的访问行为。本文将介绍Python如何使用代理IP进行网站爬取的实现,包括代理IP的获取、代理IP的验证、以及如何把代理IP应用到爬虫代码中。 1. 使用代理IP的好处 在进行网站爬…...
识别图片中的文字
前言 PearOCR 是一款免费无限制网页版文字识别工具。 优点如下: 免费:完全免费,没有任何次数、大小限制,可以无限使用; 安全:全部数据本地运算,所有图片均不会被上传; 智能…...
第七章:借阅管理【基于Servlet+JSP的图书管理系统】
借阅管理 1. 借书卡 1.1 查询借书卡 借书卡在正常的CRUD操作的基础上,我们还需要注意一些特殊的情况。查询信息的时候。如果是管理员则可以查询所有的信息,如果是普通用户则只能查看自己的信息。这块的控制在登录的用户信息 然后就是在Dao中处理的时候需…...
算法 for GAMES
栈 #include <iostream> #include <stack>int main() {std::stack<int> intStack;// 压入元素到堆栈intStack.push(5);intStack.push(10);intStack.push(15);// 查看堆栈顶部元素std::cout << "Top element: " << intStack.top() <…...
自研分布式IM-HubuIM RFC草案
HubuIM RFC草案 消息协议设计 基本协议 评估标准 【性能】协议传输效率,尽可能降低端到端的延迟,延迟高于200ms用户侧就会有所感知 【兼容】既要向前兼容也要向后兼容 【存储】减少消息包的大小,降低空间占用率,一个字节在亿…...
tableau基础学习1:数据源与绘图
文章目录 读取数据常用绘图方法1. 柱状图2. 饼图3. 散点图4. 热力图 第一部分是一些较容易上手的内容,以及比较常见的可视化内容,包括:柱状图、饼图、散点图与热力图 读取数据 打开界面后,选择数据源之后就可以导入数据…...
探索经典算法问题与解决方案
探索经典算法问题与解决方案 在计算机科学领域,有许多经典算法问题需要我们思考和解决。本文将深入介绍一些著名的经典算法问题,包括旅行商问题、背包问题的变种、N皇后问题、钢条切割问题、最大子数组和问题、最长公共子串问题以及矩阵连乘问题&#x…...
【Linux】DNS系统,ICMP协议,NAPT技术
遏制自己内心的知识优越感,才能让你发自内心的去尊重他人,避免狂妄自大,才能让你不断的丰富自己的内心。 文章目录 一、DNS系统1.DNS服务器返回域名对应的ip2.使用dig工具分析DNS过程3.浏览器中输入url后发生的事情? 二、ICMP协议…...
BI技巧丨Window应用之同环比
白茶曾介绍过OFFSET可以用来解决同环比的问题,其实微软最近推出的开窗函数WINDOW也可以用来解决同环比。 WINDOW函数基础语法 WINDOW ( from[, from_type], to[, to_type][, <relation>][, <orderBy>][, <blanks>][, <partitionBy>][, &l…...
频繁冲突?数据静默损坏?Obsidian + 坚果云插件打造工业级笔记同步与容灾方案
在个人知识管理(PKM)领域,有一条铁律:比“从未备份”更可怕的,是“错误的同步导致的静默覆盖”。 对于 Obsidian 重度用户而言,几千篇 Markdown 笔记是毕生心血。当你兴冲冲地在手机、iPad 和公司电脑之间…...
告别Trello!这款开源看板工具让你的团队协作更高效
1. 为什么你需要一个Trello替代品? 如果你正在使用Trello管理团队项目,可能已经发现了一些痛点。Trello确实简单易用,但随着团队规模扩大或项目复杂度增加,免费版的限制就会显现出来。比如最多只能创建10个看板,每个看…...
软考:团队管理与绩效域50大实战难题破解清单,写进论文直接加分!
对于软考高项(信息系统项目管理师)的考生来说,论文是决定成败的关键。而一篇高分论文的核心,在于能否用真实、具体的项目实践,去论证你对项目管理知识体系的深刻理解。项目团队管理和项目绩效域是论文中最常考、也最容…...
onnx之优化器
之前的OpenPPL有个章节讲到过优化器,onnx里面也有个优化器,相关介绍如下一、优化器的本质ONNX Core Optimizer 是在图级别工作的,与EP(Execution Provider)无关。textONNX模型(计算图)→ Optimi…...
IDEA插件实战:CodeGeeX4不只是补全代码,这5个隐藏用法让效率翻倍
IDEA插件实战:CodeGeeX4不只是补全代码,这5个隐藏用法让效率翻倍 在JetBrains生态中,AI编程助手早已不是新鲜事物,但大多数开发者对CodeGeeX4的认知仍停留在"智能补全"层面。当我在团队内部做技术分享时,发现…...
OpenClaw局域网访问配置
根据OpenClaw最新官方文档(截至2026年3月),以下是更新后的局域网访问配置指南,整合了网络架构、安全加固和自动化配对等新特性:一、核心配置命令(基于新版网关协议)启用LAN多接口监听 使用新参数…...
Windows 11 零基础搞定 Coze Studio 本地部署:Docker 配置 + 豆包模型实战
Windows 11 零基础搞定 Coze Studio 本地部署:Docker 配置 豆包模型实战 1. 环境准备与Docker安装 对于Windows 11用户来说,Docker是运行Coze Studio的基础环境。与Linux或macOS不同,Windows平台需要特别注意虚拟化支持和镜像源配置。 硬…...
破局MIDI控制困境:SendMIDI让命令行成为音乐创作的神经中枢
破局MIDI控制困境:SendMIDI让命令行成为音乐创作的神经中枢 【免费下载链接】SendMIDI Multi-platform command-line tool to send out MIDI messages 项目地址: https://gitcode.com/gh_mirrors/se/SendMIDI 在数字音乐制作的世界里,MIDI&#x…...
互联网大厂Java面试实战:严肃面试官与搞笑程序员谢飞机的三轮问答
互联网大厂Java面试实战:严肃面试官与搞笑程序员谢飞机的三轮问答 在互联网大厂Java岗位面试中,面试官不仅考察应聘者的技术深度,更关注其理解业务场景的能力和解决问题的方法。本文通过一场幽默而真实的模拟面试,呈现核心Java与周…...
别再死记硬背了!用Multisim仿真带你玩转计数器与数据选择器(附FPGA引脚配置)
用Multisim仿真与FPGA实战:计数器与数据选择器的设计艺术 数字电路课程中那些抽象的概念,是否曾让你感到困惑?模5计数器、序列信号发生器这些名词听起来高深莫测,但通过Multisim仿真和FPGA实战,你会发现它们其实可以很…...
