Win10系统下OpenCV静态库的编译流程

Win10系统下OpenCV静态库的编译流程

一、前言

QT项目需要使用到OpenCV作为图像处理,需要导入静态库,这样可以避免最后导出的exe文件放到其他没有OpenCV环境的电脑当中出现无法使用的情况。记录一下自己编译整个OpenCV的流程。

二、步骤

1、前置条件

Windows 操作系统

Visual Studio 2022 (含C++开发工具) y

由于我的QT项目是使用MSVC_2022编译的,所以OpenCV所需的编译器也需要保持一致。

CMake 3.16+

Git (用于克隆源码)

2、目录结构

D:\DeskTop\QT_Program\ # 主工作目录

├── opencv\ # OpenCV源码目录

├── opencv_build\ # 构建目录

└── opencv_static\ # 静态库安装目录

3、完整编译流程

3.1 获取OpenCV源码

通过git获取源码仓库,然后切换到需要的版本(这里以4.10.0为例子)

cd D:\DeskTop\QT_Program

git clone https://github.com/opencv/opencv.git

cd opencv

git checkout 4.10.0

3.2 创建构建目录

# 创建构建目录

mkdir D:\DeskTop\QT_Program\opencv_build

mkdir D:\DeskTop\QT_Program\opencv_static

3.3 配置CMake项目

进入构建目录

cd D:\DeskTop\QT_Program\opencv_build

使用CMake配置OpenCV静态库 (PowerShell命令)

cmake -G "Visual Studio 17 2022" -A x64 `

-DCMAKE_INSTALL_PREFIX=D:/DeskTop/QT_Program/opencv_static `

-DBUILD_SHARED_LIBS=OFF `

-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded `

-DWITH_OPENCL=OFF `

-DWITH_CUDA=OFF `

-DWITH_IPP=OFF `

-DBUILD_TESTS=OFF `

-DBUILD_PERF_TESTS=OFF `

-DBUILD_EXAMPLES=OFF `

-DBUILD_DOCS=OFF `

-DBUILD_JAVA=OFF `

-DBUILD_opencv_apps=OFF `

-DBUILD_opencv_python2=OFF `

-DBUILD_opencv_python3=OFF `

-DBUILD_opencv_world=ON `

-DWITH_FFMPEG=OFF `

-DWITH_GTK=OFF `

-DWITH_MSMF=OFF `

-DWITH_QUIRC=OFF `

-DWITH_TIFF=OFF `

-DBUILD_JPEG=ON `

-DBUILD_PNG=ON `

-DBUILD_WEBP=OFF `

D:\DeskTop\QT_Program\opencv

Cmake配置选项说明

选项

说明

CMAKE_INSTALL_PREFIX

安装目录

静态库目标路径

BUILD_SHARED_LIBS

是否构建动态库

OFF(生成静态库)

CMAKE_MSVC_RUNTIME_LIBRARY

运行时库

MultiThreaded(静态运行时/MT)

WITH_OPENCL/CUDA/IPP

扩展功能

OFF(减少依赖)

BUILD_TESTS/EXAMPLES

测试和示例

OFF(减少构建内容)

BUILD_opencv_python*

Python绑定

OFF(不需要)

BUILD_opencv_world

合并库

ON(生成单个静态库)

WITH_FFMPEG/GTK

多媒体支持

OFF(减少依赖)

BUILD_JPEG/PNG

图像格式

ON(内置支持)

3.4 编译与安装

编译Release版本

cmake --build . --config Release --parallel 8

安装到指定目录

cmake --install . --config Release

3.5 验证安装结果

检查静态库文件

dir D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib\*.lib

检查头文件

dir D:\DeskTop\QT_Program\opencv_static\include\opencv2

3.6预期结果:

PS D:\DeskTop\QT_Program\opencv_build> dir D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib\*.lib

目录: D:\DeskTop\QT_Program\opencv_static\x64\vc17\staticlib

Mode LastWriteTime Length Name

---- ------------- ------ ----

-a---- 3/7/2025 7:04 PM 15118518 IlmImf.lib

-a---- 3/7/2025 7:04 PM 209632 ittnotify.lib

-a---- 3/7/2025 7:04 PM 1207842 libjpeg-turbo.lib

-a---- 3/7/2025 7:04 PM 877228 libopenjp2.lib

-a---- 3/7/2025 7:04 PM 668674 libpng.lib

-a---- 3/7/2025 7:04 PM 12700048 libprotobuf.lib

-a---- 3/7/2025 7:04 PM 1556710 libwebp.lib

-a---- 3/7/2025 7:07 PM 155537580 opencv_world4100.lib

-a---- 3/7/2025 7:04 PM 190618 zlib.lib

PS D:\DeskTop\QT_Program\opencv_build> dir D:\DeskTop\QT_Program\opencv_static\include\opencv2

目录: D:\DeskTop\QT_Program\opencv_static\include\opencv2

Mode LastWriteTime Length Name

---- ------------- ------ ----

d----- 3/7/2025 7:08 PM calib3d

d----- 3/7/2025 7:08 PM core

d----- 3/7/2025 7:08 PM dnn

d----- 3/7/2025 7:08 PM features2d

d----- 3/7/2025 7:08 PM flann

d----- 3/7/2025 7:08 PM highgui

d----- 3/7/2025 7:08 PM imgcodecs

d----- 3/7/2025 7:08 PM imgproc

d----- 3/7/2025 7:08 PM ml

d----- 3/7/2025 7:08 PM objdetect

d----- 3/7/2025 7:08 PM photo

d----- 3/7/2025 7:08 PM stitching

d----- 3/7/2025 7:08 PM video

d----- 3/7/2025 7:08 PM videoio

-a---- 3/7/2025 5:44 PM 229234 calib3d.hpp

-a---- 3/7/2025 5:44 PM 160674 core.hpp

-a---- 3/7/2025 7:03 PM 3355 cvconfig.h

-a---- 3/7/2025 5:41 PM 3425 dnn.hpp

-a---- 3/7/2025 5:41 PM 74648 features2d.hpp

-a---- 3/7/2025 5:41 PM 28705 flann.hpp

-a---- 3/7/2025 5:44 PM 38359 highgui.hpp

-a---- 3/7/2025 5:44 PM 28977 imgcodecs.hpp

-a---- 3/7/2025 5:44 PM 262300 imgproc.hpp

-a---- 3/7/2025 5:41 PM 94590 ml.hpp

-a---- 3/7/2025 5:41 PM 43966 objdetect.hpp

-a---- 3/7/2025 5:41 PM 3558 opencv.hpp

-a---- 3/7/2025 7:03 PM 782 opencv_modules.hpp

-a---- 3/7/2025 5:44 PM 38991 photo.hpp

-a---- 3/7/2025 5:44 PM 15077 stitching.hpp

-a---- 3/7/2025 5:41 PM 2574 video.hpp

-a---- 3/7/2025 5:44 PM 70639 videoio.hpp

-a---- 3/7/2025 5:41 PM 2383 world.hpp

相关推荐

5.3.2 线段垂直平分线的性质及画法(知识清单+经典例题+夯实基础+提优特训+中考链接)
炸荸荠丸子的做法与步骤
英国正版365官方网站

炸荸荠丸子的做法与步骤

📅 09-25 👁️ 2154
50厘米等于多少米?
365betapp中文

50厘米等于多少米?

📅 01-15 👁️ 9089