Windows上VSCode中配置MinGW、C++和手动自编译安装OpenCV(详细图文教程)

在这里插入图片描述

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝《超分辨率重建》
📝《语义分割》
📝《风格迁移》
📝《目标检测》
📝《暗光增强》
📝《模型优化》
📝《模型实战部署》


在这里插入图片描述

本教程是在电脑上已经安装了VSCode基础上讲解,如果没有安装VSCode的学者,自行先安装一下。

一、MinGW安装

1.1 为什么先安装MinGW

在 Windows 上运行 C++ 程序时,安装 MinGW 是为了提供开发和编译环境,因为 Windows 本身并不内置 GNU 工具链或 C++ 编译器。

MinGW(Minimalist GNU for Windows)是一套免费的编译器工具集合,它包含了 GCC(GNU Compiler Collection)的 Windows 版本,以及一些 Unix 工具,使得你可以在 Windows 上编译和运行 C、C++ 等语言的程序。

编译 C/C++ 代码: Windows 默认没有 C++ 编译器,而 MinGW 提供了 GCC 编译器,能够编译 C 和 C++ 代码。

跨平台兼容性: MinGW 提供了类似于 Linux 的工具链和编译器,让你可以在 Windows 上运行一些 Unix/Linux 系统中的工具和程序。对于熟悉 Unix 开发环境的开发者来说,MinGW 是一种熟悉且方便的工具。

轻量和开放源代码: MinGW 是一个轻量级的编译器工具链,它不依赖庞大的运行时库,并且遵循开源协议,方便使用和扩展。

便捷的集成开发: MinGW 易于与多种 IDE(如 Code::Blocks、Eclipse)集成,便于开发者直接在 IDE 中编写、编译、调试 C++ 代码。

关于MinGW的解释,讲得较好的,参考其它文章:MinGW解释

1.2 MinGW安装包下载

MinGW的官网地址:MinGW官网

安装包的下载我推荐到github上拉取,地址为:MinGW_github

打开后根据自己的电脑属性选择版本,见下:

在这里插入图片描述
我自己Windows电脑上的下载版本见下:

在这里插入图片描述

下载解压后的样子见下:

在这里插入图片描述

1.3 添加环境变量

添加环境变量按照下面步骤操作,后续还需要添加环境变量,方法同此小节。

将MinGW文件夹下的bin路径添加到环境变量中。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 测试MinGW是否安装成功

在终端输入下面命令:

g++ --version

成功的话会输出版本信息,见下:
在这里插入图片描述

二、OpenCV包

2.1 OpenCV包下载

下载OpeCV的官网地址为:OpenCV

OpenCV包有很多版本,学者根据自己情况自行选择。

在这里插入图片描述

下载好的文件见下:

在这里插入图片描述

对.exe文件进行解压,解压后的文件见下:

在这里插入图片描述

2.2 添加环境变量

将OpenCV包文件夹下的bin路径添加到环境变量中,见下:

在这里插入图片描述
将路径:D:\APP\OpenCV_4.10.0\opencv\build\x64\vc16\bin下的opencv_videoio_ffmpeg4100_64.dll,opencv_world4100.dll,opencv_world4100d.dll三个文件复制到C:\Windows\System32路径下:

在这里插入图片描述

三、CMake安装

3.1 CMake包下载

CMake官网下载地址为:CMake

打开网址后下载方法见下:

在这里插入图片描述

下载解压后的样子见下:

在这里插入图片描述

3.2 添加环境变量

将CMake文件夹下的bin路径添加到环境变量中:

在这里插入图片描述

3.3 测试CMake是否安装成功

在终端输入下面测试命令:

cmake --version

输出类似下面的版本信息则说明安装成功:

在这里插入图片描述

四、编译和构建

4.1 CMake配置和生成构建文件

在这个过程中,通过CMake配置生成Makefile文件。具体描述如下:

配置(Configuration):CMake 读取项目的 CMakeLists.txt 文件,解析其中的指令,配置项目的构建环境。它会根据用户的指定(如生成目标平台、编译器等),生成适合该平台的构建文件。

生成(Generation):根据配置,CMake 生成对应的构建系统文件,例如 Makefile(用于 MinGW 或其他支持 Make 的编译工具链),或者是 Visual Studio 的 .sln 解决方案文件。

4.1.1 创建Makefile存放位置

在oepncv路径D:\APP\OpenCV_4.10.0\opencv\build\x64下手动新建一个MinGW文件夹,用于保存生成的
MakeFile文件,见下:

在这里插入图片描述

4.1.2 CMake配置

在上面3.1中安装好CMake的基础上,启动CMake,用管理员身份运行cmake-gui.exe,见下:

在这里插入图片描述

添加OpenCV文件夹路径下的sources文件夹和MinGW文件夹路径,见下:

在这里插入图片描述

路径添加好后点击配置按钮,见下:

在这里插入图片描述

在这里插入图片描述

将MinGW中的gcc.exe和g++.exe路径添加到对应配置选项中,见下:

在这里插入图片描述

点击Finish

在这里插入图片描述

下面开始在指定的/OpenCV_4.10.0/opencv/build/x64/MinGW路径中生成相关文件:

在这里插入图片描述

等待一段时间后停止生成,下面有几个地方要勾选,见下:

在这里插入图片描述
在这里插入图片描述

补:如果没有BUILD_opencv_world,可以手动添加,添加方法见下:

在这里插入图片描述

下面是继续勾选的选项:

在这里插入图片描述

将CPU_ DISPATCH选空,见下:

在这里插入图片描述

点击Configure重新配置:

在这里插入图片描述

4.1.3 报错

在上面配置过程中,多数情况下会报错,主要是因为有些文件及时开了梯子也没正常下载,此时就需要手动下载,下载好后同原文件名复制到指定路径中,见下:

在这里插入图片描述

在OpenCV文件夹中创建的MinGw文件夹中找到CMakeDownloadLog.txt文件,里面有下载失败文件的下载链接:

在这里插入图片描述

将链接复制到浏览器或者迅雷中下载,我下载时就将开头为http,结尾为dll的链接下载:

在这里插入图片描述

下载好后将下载文件重命名,名称用下载失败的文件名,见下:

在这里插入图片描述

上面都下载好后重新配置,直到没有报错,见下:

在这里插入图片描述

4.1.4 生成

点击CMake界面的Generate按钮:

在这里插入图片描述

上面配置和生成好的makefile文件见下:

在这里插入图片描述

4.2 构建编译

使用生成的构建文件(如 Makefile),实际编译和链接项目中的源代码,生成可执行文件或库。这一步骤涉及编译源代码、链接库文件以及生成最终的可执行文件或库,是整个 CMake 构建流程中的重要环节。

构建步骤的具体作用:

编译:将源代码文件(如 .cpp、.c)编译成目标文件(如 .o、.obj)。

链接:将目标文件与库文件(如 OpenCV 库)链接,生成最终的可执行文件或动态链接库(.dll)。

并行构建:通过 -j 选项指定并行线程数,可以显著加快大型项目的构建速度,尤其是在多核处理器上。

终端中进入到OpenCV_4.10.0\opencv\build\x64\MinGW路径下,输入构建编译命令:

mingw32-make.exe -j 12

命令解析:

mingw32-make.exe:MinGW 提供的 make 工具,用于处理 Makefile 中定义的构建规则。

-j 12:表示使用 12 个并行线程进行编译,以加快构建速度。

在这里插入图片描述
在这里插入图片描述

4.3 安装

将构建好的项目文件(如可执行文件、动态/静态库、头文件等)从编译生成的目录复制到指定的安装路径。这个过程通常遵循 Makefile 中定义的安装规则,并包括以下步骤:

复制文件:将编译生成的文件(例如可执行文件、库文件、头文件等)复制到预定义的系统路径或用户指定的安装路径。通常会复制到系统路径(如 /usr/local 或 C:/Program Files)或开发环境路径下的某个目录中。

配置环境:可能会更新某些环境变量或路径(如 PATH、LD_LIBRARY_PATH)以便系统能够正确找到可执行文件或库文件。

创建目录结构:根据项目的结构,在安装目录中创建合适的目录,如 bin、lib、include 等,并将相关文件放置在对应目录中。

设置权限:在某些系统上,可能会为安装的文件设置适当的访问权限。

这个过程通常在开发完成后用于部署或准备分发可执行版本,因此可以方便其他开发者或用户使用已编译的程序或库。

在终端使用下面命令安装:

mingw32-make.exe install

在这里插入图片描述

安装成功后会在OpenCV_4.10.0\opencv\build\x64\MinGW路径下生成一个install文件夹,里面就是安装好的相关文件,见下:

在这里插入图片描述

在这里插入图片描述

需要将install文件夹下的bin路径添加到系统环境变量中,见下:

由于我添加的环境变量太多报了一个错,我重新用了个变量名链接到环境变量中,具体添加方法见下:

在这里插入图片描述

换种方法将路径赋值到一个变量中,见下:

在这里插入图片描述
在这里插入图片描述

将系统变量添加到Path中:

在这里插入图片描述
在这里插入图片描述

到这一步,自编译OpenCV准备好了,下面是在VSCode中配置编译好的OpenCV。

五、VSCode中配置OpenCV

5.1 测试代码

新建一个项目工程,用VSCode打开,创建一个.cpp脚本,将下面代码复制进去,作为测试OpenCV的代码:

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main() {
    // 指定图片路径
    string path = "Images/0.bmp";
    cv::Mat img = imread(path);  // 读取图像

    // 显示图像
    imshow("Display Image", img);
    // imshow("Display Image", test);

    // 等待按键按下,关闭窗口
    waitKey(0);

    return 0;
}

5.2 c_cpp_properties.json文件配置

先点击.cpp脚本,用快捷键Ctrl+shift+P打开搜索栏输入:C/C++ Edit Configurations(UI)

在这里插入图片描述

打开后选择编译器路径和导入头文件路径:

在这里插入图片描述

在这里插入图片描述

下面是其它参数可以保持默认:

在这里插入图片描述

这些配置好的参数在c_cpp_properties.json文件中查看,见下:

在这里插入图片描述

5.3 tasks.json文件配置

创建一个tasks.json文件来告诉VS Code如何构建(编译)程序。该任务将调用g++编译器基于源代码创建可执行文件。先选中脚本.cpp文件, 按快捷键Ctrl+Shift+P调出命令面板,输入tasks,选择“Tasks:Configure Default Build Task”:

在这里插入图片描述
选择“C/C++: g++.exe build active file”:

在这里插入图片描述

打开tasks.json文件后,需要自己手动修改的地方见下:

在这里插入图片描述

完整的tasks.json文件内容见下:

在这里插入图片描述

5.4 launch.json文件配置

这里主要是为了在.vscode文件夹中产生一个launch.json文件,用来配置调试的相关信息。点击菜单栏的Debug–>Start Debugging:

在这里插入图片描述

选择C++(GDB/LLDB)

在这里插入图片描述

创建好launch.json文件后,自动生成的内容只有两行,其它内容需要自己填补,我这里提供内容,学者在我提供内容基础上需要修改的地方见下:

在这里插入图片描述

launch.json文件内容见下:


{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "name": "(gdb) Launch",
            // "preLaunchTask": "g++.exe build active file",//调试前执行的任务,就是之前配置的tasks.json中的label字段
            "preLaunchTask": "C/C++: g++.exe",
            "type": "cppdbg",//配置类型,只能为cppdbg
            // "label": "C/C++: g++.exe build active file",
            "request": "launch",//请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",//调试程序的路径名称
            "args": [],//调试传递参数
            "stopAtEntry": true,
            // "cwd": "${workspaceFolder}",
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,//true显示外置的控制台窗口,false显示内置终端
            "MIMode": "gdb",
            "miDebuggerPath": "F:/APP/MinGW/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            // "preLaunchTask": "g++.exe build active file",
            // "internalConsoleOptions": "neverOpen"
            // "preLaunchTask": "build",  // Ensure build task runs before launch
            "internalConsoleOptions": "neverOpen"
        }
    ]
}

5.5 测试OpenCV是否配置成功

上面配置都弄好后,运行5.1中的测试脚本,随便读入一张图像,如果能正常显示图像,恭喜!你在VSCode中配置OpenCV成功了!

在这里插入图片描述

六、总结

此博文我疏通了在Windows上VSCode中从编译到配置OpenCV的整个流程。此教程参考了网上多篇博文后总结的教程,中间有很多坑,特别是在配置和生成Makefile文件过程,不同电脑在这个过程会出现各种问题,多磨一下也能编译成功。

如果自己电脑编译实在通过不了,可以直接使用其他人大佬已经编译好的OpenCV,关于怎么使用其他人编译好的OpenCV库,见我下一篇博文,VSCode中配置并快速使用第三方OpenCV库。

欢迎学者留言讨论,看到会第一时间回复。

感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖

关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉研坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值