vs2022配置opencv静态库

本文将在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分钟,有点仓促,后续继续完善。今天先到这里吧。

### 配置和下载OpenCV库 #### 下载OpenCV库 为了在Visual Studio 2022中使用OpenCV,首先需要从官方网站下载预构建的二进制版本或者源码并自行编译。可以从以下链接获取最新版本的OpenCV:https://opencv.org/releases/。选择适合操作系统的版本进行下载[^1]。 #### 解压OpenCV包 下载完成后解压缩文件至指定目录(例如 `D:\Opencv`)。此目录下会包含多个子文件夹,其中最重要的有 `include`, `lib`, 和 `bin` 文件夹[^3]。 #### 设置环境变量 为了让操作系统识别动态链接库(.dll),需设置系统环境变量Path。具体做法如下: - 将路径 `D:\Opencv\opencv\build\x64\vc16\bin` 添加到系统的PATH环境中。 - 这一步可以通过控制面板->系统属性->高级->环境变量完成[^4]。 #### 创建项目并在Visual Studio中配置 打开Visual Studio 2022创建一个新的C++控制台应用程序项目。随后按照下面步骤来配置: ##### 修改项目的属性页 右键点击解决方案资源管理器中的项目名称 -> 属性,在弹出窗口做如下更改: - **C/C++ -> 常规 -> 附加包含目录**: 输入 `D:\Opencv\opencv\build\include`. - **链接器 -> 常规 -> 附加库目录**: 输入 `D:\Opencv\opencv\build\x64\vc16\lib`. - **链接器 -> 输入 -> 附加依赖项**: 添加必要的.lib文件名, 如 `opencv_world455.lib`. 以上步骤确保了编译期能找到头文件以及连接期间能定位静态或导入库文件[^2]。 #### 测试配置是否成功 最后编写一段简单的代码验证整个流程无误: ```cpp #include <opencv2/core.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgui.hpp> #include <iostream> int main() { std::string image_path = cv::samples::findFile("lena.jpg"); cv::Mat img = cv::imread(image_path); if (img.empty()) { std::cout << "Could not read the image." << std::endl; return 1; } cv::imshow("Display window", img); int k = cv::waitKey(0); // Wait for a keystroke in the window return 0; } ``` 运行上述程序前,请确认工作目录存在名为"lena.jpg"的图片文件。如果一切正常,则应该看到加载该图像的新窗口显示出来。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值