VSCode+MinGW编译纯净版OpenCV4.13.0(附带编译完成版本)
一、写在前面:为什么要自己编译?
想要在 VSCode + MinGW 环境配置 OpenCV 时发现:
1.网上大部分预编译库默认带 Qt 依赖,解压后用 VSCode 编译代码,一运行就弹窗「缺少 Qt5Core.dll/Qt5Gui.dll」;
2.少数无 Qt 版本要么版本过旧(低于 4.0),要么适配的 MinGW 版本和我用的 GCC13.1 不兼容;
3.官方源码编译看似复杂,但只要避坑,其实能得到「完全适配自己环境、无冗余依赖」的纯净版本。
所以干脆自己编译了 OpenCV 4.13.0,移除 Qt 依赖、保留 Win32 原生 UI,适配 MinGW GCC13.1,VSCode 直接配置可用,现在把编译步骤 + 预编译库分享给大家~
二、编译环境说明
和我一致可直接用预编译库,但为了避免其他麻烦最好自己编译一遍,我最后会附上我的编译完版本,MinGW13.1.0版本,opencv4.13.0源码,cmake安装包

三、cmake编译
1. 准备工作:下载文件 + 路径规范
下载 OpenCV 4.13.0 源码:官方 GitHub(解压后路径无空格、无中文!);

下载 MinGW-w64:Source Code - mingw-w64(安装路径示例:D:/c++/mingw64);
下载 CMake-gui:官网Download CMake官网;
关键避坑:所有路径必须无空格、无中文!比如D:/c++/opencv-4.13.0(正确),D:/OpenCV 4.13.0(错误,空格导致编译失败)。
MinGW-w64的环境配置网上很多,不再赘述,但是大家不要忘记配置
2. CMake 配置(最关键:关闭 Qt 依赖)
打开 CMake,填写路径:
源码路径:D:/c++/opencv-4.13.0/opencv-4.13.0(解压后的源码根目录),opencv-4.13.0内部如下图,有的时候解压完不一定叫opencv-4.13.0,看情况填写,最好重新建一个文件夹,原来路径容易有空格之类的东西;

编译路径:D:/c++/opencv-4.13.0/build(新建空文件夹build,用于存放编译产物);
点击「Configure」,弹出窗口选择:
1.Generator:MinGW Makefiles;
2.勾选「Specify native compilers」;
3.C 编译器:D:/c++/mingw64/bin/gcc.exe;
4.C++ 编译器:D:/c++/mingw64/bin/c++.exe;(或者g++)
5.点击「Finish」,等待第一次配置(会下载 FFMPEG 等依赖,耐心等);
关键配置(解决 Qt 报错 + 精简编译):
- 取消勾选 WITH_QT(核心!关闭 Qt 依赖,避免 dll 缺失);
- 勾选 WITH_WIN32UI(启用 Windows 原生 UI,替代 Qt 显示图片 / 摄像头);
- 勾选 BUILD_opencv_world(生成一个整合所有模块的opencv_world4130.dll,方便配置);
- 取消勾选 BUILD_TESTS、BUILD_EXAMPLES(跳过测试和示例,加速编译);
- CMAKE_BUILD_TYPE 选择 Release(发布版,体积小、速度快);
- CMAKE_INSTALL_PREFIX 保持默认(编译后会生成install文件夹,就是预编译库);再次点击「Configure」,直到底部显示「Configuring done」(无红色报错,警告可忽略);
- 点击「Generate」,直到显示「Generating done」,CMake 配置完成3. 命令行编译

3. 命令行编译
好了后快捷键(win+R)进入cmd,或者搜索命令)

进入后,再后面输入D:进入D文件夹,再输入cd 你的build文件夹在D文件夹中的地址

再输入mingw32-make -j6,开始编译

编译完成界面

再输入mingw32-make install下载、

完成后,build里的install就是需要的编译完的opencv,里面是这样

四、vscode配置
1. 准备工作:整理编译产物
编译完成后,build/install 目录结构如下:
install/ ├── bin/ # 动态链接库 .dll 文件 ├── include/ # 头文件 │ └── opencv2/ # OpenCV 头文件目录 ├── lib/ # 静态库 .a 文件 └── x64/ # 可能存在的架构目录
准备一个opencv的文件夹,把install放进去
将 install/bin添加到高级系统设置的用户变量的path中

点进去

填入地址,前面填自己保存的文件夹,后面一定时框框里的
2. VSCode 项目配置
2.1 创建项目文件夹结构
构建自己的项目,在项目里创建.vscode文件夹
my_opencv_project/ ├── .vscode/ │ ├── c_cpp_properties.json # IntelliSense 配置 │ ├── tasks.json # 编译任务配置 │ └── launch.json # 调试配置(可选) ├── main.cpp # 测试代码 └── opencv_world4130.dll # 复制过来的 dll 文件
注意,以下配置有关地址的根据情况填写自己的!!!!!
2.2 配置 c_cpp_properties.json
创建 .vscode/c_cpp_properties.json:
{
"configurations": [
{
"name": "windows-gcc-x64",
"includePath": [
"${workspaceFolder}/**",
"D:/c++/opencv/install/include" // 生成的install头文件路径
],
"defines": [],
"compilerPath": "D:/c++/mingw64/bin/gcc.exe",
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
2.3 配置 tasks.json
创建 .vscode/tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "build",
"command": "D:/c++/mingw64/bin/g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe",
"-ID:/c++/opencv/install/include", // 头文件路径
"-LD:/c++/opencv/install/x64/mingw/lib", // lib路径
"-lopencv_world4130" // 仅需这一行!所有模块都包含
],
"group": {"kind": "build", "isDefault": true},
"problemMatcher": ["$gcc"],
"options": {"cwd": "D:/c++/mingw64/bin"}
}
]
}
2.4 配置 launch.json(调试用,可选)
创建 .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:/c++/mingw64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "build"
},
{
"name": "C/C++ Runner: Debug Session",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"externalConsole": true,
"cwd": "d:/c++/opcv_vscode",
"program": "d:/c++/opcv_vscode/build/Debug/outDebug",
"MIMode": "gdb",
"miDebuggerPath": "D:/c++/mingw64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
之后要创建项目直接把.vscode的文件夹复制进去就行,结构如图

五,测试代码
创建 test.cpp:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 打开默认摄像头(0为笔记本内置摄像头,外接摄像头可试1)
VideoCapture cap(0);
// 检查摄像头是否打开成功
if (!cap.isOpened()) {
cout << "摄像头打开失败!请检查摄像头是否连接或被占用" << endl;
return -1;
}
cout << "摄像头打开成功!按 'q' 键退出" << endl;
Mat frame; // 存储摄像头帧画面
while (true) {
cap >> frame; // 读取摄像头画面
// 检查画面是否读取成功
if (frame.empty()) {
cout << "画面读取失败!" << endl;
break;
}
// 显示摄像头画面(窗口名为“摄像头实时画面”)
imshow("摄像头实时画面", frame);
// 按 'q' 键退出(等待1毫秒,检测按键)
if (waitKey(1) == 'q') {
cout << "退出程序..." << endl;
break;
}
}
// 释放摄像头资源 + 关闭所有窗口
cap.release();
destroyAllWindows();
return 0;
}
点击F5运行,可以出现摄像头拍摄场景
先出现命令窗口,乱码是代码问题,不重要

出现后说明配置成功!!!!

终端如图
六、文件资源说明
通过网盘分享的文件:souce.zip
链接: https://pan.baidu.com/s/1cdDa5-R69jSRqeaGXkI8EQ 提取码: jsbs
--来自百度网盘超级会员v4的分享
1.mingw64
版本:13.1.0
2.install
编译完的opencv,根据我的版本编译
3.opencv-opencv-2e1f8da
未编译源码
版本:OpenCV 4.13.0
4.cmake-4.3.1-windows-x86_64 (1)
cmake安装包
更多推荐
所有评论(0)