admin管理员组

文章数量:1566644

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


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

目录

  • 一、MinGW安装
    • 1.1 为什么先安装MinGW
    • 1.2 MinGW安装包下载
    • 1.3 添加环境变量
    • 1.4 测试MinGW是否安装成功
  • 二、OpenCV包
    • 2.1 OpenCV包下载
    • 2.2 添加环境变量
  • 三、CMake安装
    • 3.1 CMake包下载
    • 3.2 添加环境变量
    • 3.3 测试CMake是否安装成功
  • 四、编译和构建
    • 4.1 CMake配置和生成构建文件
      • 4.1.1 创建Makefile存放位置
      • 4.1.2 CMake配置
      • 4.1.3 报错
      • 4.1.4 生成
    • 4.2 构建编译
    • 4.3 安装
  • 五、VSCode中配置OpenCV
    • 5.1 测试代码
    • 5.2 c_cpp_properties.json文件配置
    • 5.3 tasks.json文件配置
    • 5.4 launch.json文件配置
    • 5.5 测试OpenCV是否配置成功
  • 六、总结

一、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/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库。

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

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

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

本文标签: 图文教程详细VSCodeWindows