vs2022配置opencv静态库

news2024/11/28 14:32:59

本文将在windows10环境下,vs2022+Cmake3.24.4编译opencv静态库,包括win32-release,win32-debug, x64-release, x64-debug四种;

文章内容有点长,请耐心看下去。

一、安装VS2022

下载链接:https://visualstudio.microsoft.com/zh-hans/downloads/

安装教程参考:https://blog.csdn.net/weixin_42615026/article/details/142755288?spm=1001.2014.3001.5502

二、安装cmake3.24.4

下载链接:https://github.com/Kitware/CMake/releases

建议下载红框中的压缩包,解压即可用。

在这里插入图片描述
解压后,可执行程序如,双击运行即可。
在这里插入图片描述

三、下载源码并编译opencv库

1、源码下载

1)openCV4.8.0 下载链接: https://opencv.org/releases/
在这里插入图片描述

2)openCV4.8.0 contrib 下载链接:https://github.com/opencv/opencv_contrib/releases/tag/4.8.0

两种压缩格式随便选一个。
在这里插入图片描述
下载好的压缩包如下:在这里插入图片描述

2、编译源码生成opencv静态库

step1 解压opencv-4.8.0文件,并在根目录下创建 【build】目录,这个用于编译生成x64静态库;
其中,【build2-win32】 用于生成win32静态库。
在这里插入图片描述
step2 双击运行截图中的可执行程序
在这里插入图片描述
打开后,勾选好两个路径。点击【configure】按钮,中间就会出现参数选项,设置VS版本(选择vs2022),设置目标平台(选择x64),
在这里插入图片描述

第一次点击configure,会让你设置一下sln生成平台,大特别注意,第一次选择好路径红色区域是空白的,win32和x64需要分开做两次。
在这里插入图片描述
在这里插入图片描述

step3 修改构建选项
像上面截图,第一次configure以后,有个configuring done就可以修改中间的参数了。

主要修改以下几个选项,

变量名作用
BUILD_SHARED_LIBS默认勾选,构建动态库;设为FALSE,构建静态库
OPENCV_EXTRA_MODULES_PATH设置pencv_contrib源码路径
BUILD_opencv_world是否构建为单个库,默认不构建单个库
BUILD_EXAMPLES是否构建示例
BUILD_TESTS是否构建测试
BUILD_WITH_STATIC_CRT默认勾选,构建MT;设为FALSE,将RuntimeLibrary设置为MD

修改1:我需要编译静态库,而默认是编译动态库,所以需要把BUILD_SHARED_LIBS勾选取消掉。
在这里插入图片描述

修改2:我需要配置contrib库,所以需要配置一下OPENCV_EXTRA_MODULES_PATH对应路径。请特别注意了,路径具体到modules,我第二次生成win32库的时候路径设置为C:\Users\man.zhang\Downloads\opencv_contrib-4.8.0就报错了。
在这里插入图片描述
报错示例:
在这里插入图片描述

在这里插入图片描述
修改3:我需要生成静态库给MD对应的动态库使用,所以需要设置【BUILD_WITH_STATIC_CRT】参数,将默认勾选取消,生成MD静态库;
在这里插入图片描述

step4 先configure,再generate

修改好构建项目后,先点击configure,再点击generate,这两个过程我是顺利完成的,成功界面如下。

在这里插入图片描述
step5 打开解决方案sln,进行正式编译静态库。

到step4,万里长征正式开始。可以在cmake界面中,点open project按钮,但是我安装了vs2013和vs2022两个版本,默认选择了vs2013,所以就遇到如下报错信息。
在这里插入图片描述
请乖乖到sln所在目录下,打开解决方案。
在这里插入图片描述
右击选择vs2022打开工程后,打开过程有点卡顿比较慢,多点耐心哦。特别注意,左上角菜单那里,只有release 64,debug64, 是没有win32的,该sln不支持编译win32,win32的静态库,需要到C:\Users\man.zhang\Downloads\opencv-4.8.0\build2-win32\OpenCV.sln工程来编译。我傻不拉几的加了win32编译时报错的,报错截图就不献上了。
在这里插入图片描述
如上图,右边的解决方案资源管理器窗口,选择INSTALL,右击进行build生成,就可以等待最终结果了。
在这里插入图片描述
如下截图红框中,不带d的是release64库,带d结尾的是debug64库。我选择建立了两个文件夹,把文件分开存放。
在这里插入图片描述

到这里基本就编好了x64静态库,需要把全篇步骤再来一遍编译win32静态库。写这篇文中已经耗时45分钟,有点仓促,后续继续完善。今天先到这里吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2218962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【设计模式系列】装饰器模式

目录 一、什么是装饰器模式 二、装饰器模式中的角色 三、装饰器模式的典型应用场景 四、装饰器模式在BufferedReader中的应用 一、什么是装饰器模式 装饰器模式是一种结构型设计模式,用于在不修改对象自身的基础上,通过创建一个或多个装饰类来给对象…

海南聚广众达电子商务咨询有限公司靠谱吗怎么样?

在当今这个数字化浪潮席卷全球的时代,抖音电商以其独特的魅力成为了众多商家争相入驻的新蓝海。而在这片浩瀚的电商海洋中,如何找到一家既专业又可靠的合作伙伴,成为了众多商家心中的一大难题。今天,我们就来深入剖析一下海南聚广…

模电基础(放大电路的频率响应+multisim)

目录 1.频率响应的基本概念 1.1频率响应的基本概念 1.1.1高通滤波器 1.1.2低通滤波器 1.1.3波特图 1.1.4multisim仿真 1.2晶体管高效等效模型 1.2.1晶体管的混合π模型 1.2.2晶体管电流放大倍数的频率响应 ​1.3单管放大电路的频率响应 1.3.1单管共射放大电路的频率响…

如何查看默认网关地址:详细步骤

在日常的网络配置与故障排查中,了解并正确查看默认网关地址是一项基础且至关重要的技能。默认网关是连接本地网络与外部网络(如互联网)的关键节点,它扮演着数据包转发的重要角色。无论是家庭网络、办公室网络还是更复杂的网络环境…

Threejs 实现3D 地图(01)创建基本场景

"d3": "^7.9.0", "three": "^0.169.0", "vue": "^3.5.10" <script setup> import { onMounted,ref } from vue import * as THREE from three import * as d3 from "d3"; //莫开托坐标 矫正地图…

vue综合指南(二)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vuet篇专栏内容:vue综合指南(二) 目录 21、介绍虚拟DOM 22、vue生命周期的理解 23、vue父组件向子组件传递数据…

sql高级

数据库的范式 为了建立冗余较小、结构合理的数据库&#xff0c;设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。 范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库&#xff0c;必须满足一定的范式。实际上&#xff0c;数据库范式…

基于SSM+微信小程序的打印室预约管理系统(打印2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的打印室预约管理系统实现了管理员和用户两个角色。 1、管理员功能有个人中心&#xff0c;用户管理&#xff0c;附近打印店管理&#xff0c;文件打印管理&#xff0c;当…

iTOP-RK3568开发板独立NPU通过算法加特应用到以下的场景

iTOP-3568开发板采用瑞芯微RK3568处理器&#xff0c;内部集成了四核64位Cortex-A55处理器。主频高达2.0Ghz&#xff0c;RK809动态调频。集成了双核心架构GPU&#xff0c;ARM G52 2EE、支持OpenGLES1.1/2.0/3.2、OpenCL2.0、Vulkan1.1、内嵌高性能2D加速硬件。 内置独立NPU,算力…

Yocto - 使用Yocto开发嵌入式Linux系统_10 使用Yocto项目进行开发

Developing with the Yocto Project 在本书中&#xff0c;我们一直将 Poky 用作构建工具。换句话说&#xff0c;我们将其用作设计和生成镜像的工具&#xff0c;将镜像交付到产品。 So far in this book, we have used Poky as a build tool. In other words, we have used it a…

Nature 正刊丨核糖体如何塑造蛋白质折叠

01摘要 涉及人工智能的方法彻底改变了从氨基酸序列预测蛋白质结构的能力。然而&#xff0c;这些结构通过在细胞内折叠形成的过程仍然大多难以捉摸——尽管正确折叠对蛋白质功能的重要性&#xff0c;以及折叠失败与许多毁灭性疾病之间的联系。大多数蛋白质只有在核糖体&#xf…

鸿蒙网络编程系列23-实现一个基于鸿蒙API的HTTP服务器

1. 鸿蒙HTTP服务器可行性分析 看到这个题目&#xff0c;可能有的小伙伴会有一些疑问&#xff1a; “鸿蒙API从9到12我都翻烂了&#xff0c;也没见提供HTTP服务器的接口啊” “我BUG写得少&#xff0c;你可不要骗我” 的确&#xff0c;目前的鸿蒙API没有提供HTTP服务端的实现…

【每日一题】【算法双周赛】【第 20 场 小白入门赛评价/分享】赛后另类AI写题分析分享

第 20 场 小白入门赛 1. 四个亲戚【算法赛】2. 黛玉泡茶【算法赛】AI分析具体实现代码解析复杂度分析示例运行 结果二 3. 宝玉请安【算法赛】AI分析问题分析路径计算代码实现代码解析示例运行复杂度分析 结果&#xff1a; 交上去 4. 贾母祝寿【算法赛】AI分析问题分析实现步骤代…

【日志】关于多益网申

2024.10.19 早先听闻多益的测试题非常抽象&#xff0c;凡是测过的人都说太抽象了&#xff0c;我还以为他考我各种算法或者编程语言呢。我今天也去做了一下&#xff0c;测试题里面大多都考些计算题&#xff0c;找规律题&#xff0c;判断推理题&#xff0c;还有一些图形转换&…

计算机毕业设计 基于java旅游攻略平台的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

【命令操作】Linux中多种关机和重启的命令介绍 _ 统信 _ 麒麟 _ 方德

往期好文&#xff1a;【系统配置】信创系统配置文件保护与防篡改 | 统信 | 麒麟 | 方德 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在Linux系统中多种关机和重启命令介绍的文章。Linux作为一个广泛应用的开源操作系统&#xff0c;提供了多种关机和重启的方式…

jupyter notebook 笔记

nbclassic 经典版 新版的 jupyter notebook 太丑了。 最难受的是字体太小了。 我还是喜欢老版本的 jupyter notebook. 安装经典版: pip install nbclassic 启动经典版: jupyter server 或是 jupyter nbclassic 参考来源: https://github.com/jupyter/nbclassic jupyter note…

计算机网络——传输层服务

传输层会给段加上目标ip和目标端口号 应用层去识别报文的开始和结束

C++ —— 关于多态

目录 1. 多态的概念 2.多态的定义及实现 3. 虚函数 3.1 虚函数的重写/覆盖 3.2 关于多态的面试难题 3.3 虚函数重写的⼀些问题 3.4 override 和 final关键字 3.5 重载/重写/隐藏的对比 3.6 纯虚函数和抽象类 4.多态的原理 4.1虚函数表指针 4.2 多态是如何实现的 4…

go压缩的使用

基础&#xff1a;使用go创建一个zip func base(path string) {// 创建 zip 文件zipFile, err : os.Create("test.zip")if err ! nil {panic(err)}defer zipFile.Close()// 创建一个新的 *Writer 对象zipWriter : zip.NewWriter(zipFile)defer zipWriter.Close()// 创…