前言
   本文包括VScode安装、C++环境配置以及OpenCV配置全过程。VS Studio配置OpenCV比较简单,可以直接使用OpenCV官网已有的用VS Studio编译器编译好的OpenCV库。但VS Code不能直接利用VS Studio编译好的OpenCV库,因此需要借助MinGW-64和CMake工具对OpenCV源码重新进行编译。

一、资源下载
1、VS Code
   1)官网下载:Visual Studio Code

Download Visual Studio Code - Free AI Code Editor for Mac, Linux, Windows(官网下载速度很慢,可以安装IDM,使用方法可参考下载外网资源加速)


2、MinGW-w64
   1)官网下载:MinGW-w64离线包下载地址:mingw-w64(一定要是"seh"后缀的,千万别错了!!!)


3、CMake
   1)官网下载:CMake  Download CMake(要选择二进制文件,即Binary distributions栏目)


4、OpenCV
   1)官网下载:OpenCV  Releases - OpenCV

二、环境配置
1、VS Code安装
  双击.exe文件开始安装,同意此协议,点击下一步:

  选择安装路径,点击下一步:

  点击下一步:

  根据图中提示勾选,点击下一步:

  点击安装:


2、VS Code的C++配置
  选择喜欢的界面形式,点击Mark Done;

  按图中所示步骤安装C/C++、C/C++ Extension Pack、C/C++ Intellisense等几个扩展:

  在你的某个项目中新建一个test文件夹,再在VS Code界面点击Open Folder打开文件夹,进行简单测试:

#include <stdio.h>

int main()
{
    for (int i = 0; i < 5; i++)
        printf("Hello Grayson~%d\n", i); 

    return 0;
}

  点击右上角三角形进行编译(此时会报错,因为还未进行配置编译器MinGW):

  这个地方报错,是因为VS Code只是一个编辑器,如果想正常运行C++程序还需要安装编译器。

3、MinGW-w64安装
  解压MinGW-w64压缩包,存在下图文件夹:

  将该文件夹的bin路径添加到环境变量中(添加到系统变量中):


  检查MinGW-w64是否安装成功,若成功则如下图所示:

命令:

gcc --version

  重启VS Code,再次运行程序成功:


4、OpenCV配置
  将你下载的opencv解压到除C盘外的其他盘内(若是C盘,cmake 时很可能报错),我这里解压到d盘这个目录:

  在 opencv\build\x64 路径下新建一个文件夹(可自起,这里是 MinGW )


5、CMake安装
  将cmake解压,文件夹如图所示:

  将该文件夹下的bin文件路径添加到环境变量(添加到系统变量中):


  检查cmake是否安装成功(win+r  cmd):

cmake --version

6、生成MakeFiles
  进入(你的cmake安装路径)D:\Program Files\CMake\bin,先不要进行任何操作:

  在操作cmake-gui之前,如果没有翻过墙的话,先用记事本方式打开C:\Windows\System32\drivers\etc\hosts,在文件的末尾加上151.101.72.133 raw.githubusercontent.com(因为cmake-gui会下载一些文件, 这些文件都在raw.githubusercontent.com上, 如果不修改一下hosts,许多文件很可能会下载失败)。(如果hosts文件修改后无法保存,则是因为电脑默认hosts权限为只读,在属性里修改hosts文件为可写即可成功保存,记得环境配置好之后把hosts属性改回去,以保护电脑安全性)。

如果有魔法,打开魔法就好了!!!不用配置


  打开cmake-gui,选择OpenCV的源文件路径和MakeFiles保存路径(即之前新建的MinGW):

  点击Configure,弹窗配置如下,点击Next:

  选择前面安装的D:/mingw64/bin文件夹下的gcc.exe和g++.exe,点击Finsh

  -->耐心等待中。。。
  执行过程中消息框会出现一堆红色信息,最后显示Configure done,是正常的。显示Configure done后,勾选BUILD_ opencv_world、WITH_ OPENGL和BUILD EXAMPLES,不勾选WITH_IPP、WITH_MSMF和ENABLE_PRECOMPILED_HEADERS (如果有的话),CPU_ DISPATCH选空。再次点击Configure
  -->耐心等待中。。。
  这次执行完后仍有错误如下:

  即使修改了hosts,仍然会有文件没有成功下载,这个时候需要手动下载它们。可以用浏览器访问下载链接,或者使用迅雷等下载器进行下载。在自创建的MinGW下的CMakeDownloadLog.txt文件中列出了所有丢失文件的下载链接,比如:

https://raw.githubusercontent.com/opencv/opencv_3rdparty/4d348507d156ec797a88a887cfa7f9129a35afac/ffmpeg/opencv_videoio_ffmpeg.dll

和https://raw.githubusercontent.com/opencv/opencv_3rdparty/4d348507d156ec797a88a887cfa7f9129a35afac/ffmpeg/opencv_videoio_ffmpeg_64.dll

一般就是寻找上面这两个链接到浏览器下载(不能复制上面我的,具体的要自己里面去复制)。

  一个个访问这些链接,下载后放到OpenCV源文件里.cache的相应子文件夹中替代原缓存文件(下载的文件重命名为相应地缓存文件名并删除原缓存文件)。

这样从头到尾下载CMakeDownloadLog.txt中列出的所有丢失文件,之后,再次点击Configure,出现configure down之后点击Generate,显示Generate Done。


  如果MakeFiles文件成功生成,则CMakeDownloadLog.txt内容如下所示:

7、编译OpenCV
  使用 cmake 时要求安装 python3(版本没有限制,比2高就行),并且python 必须配好了环境变量。
  cmd到MakeFiles所在文件夹,执行如下命令:

mingw32-make -j 8

  等待时间比较久,等待完成编译即可。如果报错可查阅编译报错解答。

如果编译成功则执行如下命令完成装载:

mingw32-make install

安装完成之后,将D:\library\opencv\build\x64\MinGW\bin加入环境变量(添加到系统变量中):

8、VS Code配置

到这一步基本上是完成了所有配置,现在是在vs code中进行配置链接就行了。

原博客的教程太明白(可能我刚用vs不太理解,我是让gpt帮我完成的,不会的可以去看原博客的配置教程)

我这里贴出我三个配置文件的路径,我感觉可以替换修改自己的路径也是没问题的

1)、c_cpp_properties.json配置

{
    "configurations": [
        {
            "name": "win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/library/opencv/build/x64/MinGW/install/include",
                "D:/library/opencv/build/x64/MinGW/install/include/opencv2"
            ],
            "defines": [],
            "compilerPath": "D:/mingw64/bin/gcc.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

2)、launch.json配置脚本:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ debug (OpenCV)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [
                {
                    "name": "PATH",
                    "value": "D:\\mingw64\\bin;D:\\library\\opencv\\build\\x64\\MinGW\\install\\x64\\mingw\\bin;%PATH%"
                }
            ],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "g++ build (OpenCV)"
        }
    ]
}

3)、task.json文件配置:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "g++ build (OpenCV)",
            "type": "cppbuild",
            "command": "D:/mingw64/bin/g++.exe",
            "args": [
                "-g",
                "-std=c++17",
                "-I", "D:/library/opencv/build/x64/MinGW/install/include",
                "-L", "D:/library/opencv/build/x64/MinGW/install/x64/mingw/lib",
                "${file}",
                "-o", "${fileDirname}/${fileBasenameNoExtension}.exe",
                "-lopencv_core4110",
                "-lopencv_highgui4110",
                "-lopencv_imgproc4110",
                "-lopencv_imgcodecs4110",
                "-lopencv_videoio4110",
                "-lopencv_video4110",
                "-lopencv_calib3d4110",
                "-lopencv_features2d4110",
                "-lopencv_flann4110",
                "-lopencv_dnn4110",
                "-lopencv_ml4110",
                "-lopencv_objdetect4110",
                "-lopencv_photo4110",
                "-lopencv_stitching4110",
                "-lopencv_gapi4110"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": [
                "$gcc"
            ],
            "detail": "编译 C++ 文件 (OpenCV 4.11.0 MinGW)"
        }
    ]
}

三、测试结果

以上三个json都配置好之后,创建一个test_opencv.cpp,如下:

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

using namespace cv;
using namespace std;

int main(int argc, char **argv)
{
    // 打印 OpenCV 版本
    cout << "OpenCV version: " << CV_VERSION << endl;
    cout << "Major: " << CV_MAJOR_VERSION << endl;
    cout << "Minor: " << CV_MINOR_VERSION << endl;

    // 创建一个 300x300 的红色图片
    Mat img(300, 300, CV_8UC3, Scalar(0, 0, 255));

    // 在图片上绘制白色文字
    putText(img, "OpenCV Test OK!", Point(30, 150),
            FONT_HERSHEY_SIMPLEX, 0.8, Scalar(255, 255, 255), 2);

    cout << "Image size: " << img.cols << "x" << img.rows << endl;

    // 显示图片
    namedWindow("OpenCV Test", WINDOW_AUTOSIZE);
    imshow("OpenCV Test", img);

    cout << "Press any key to exit..." << endl;
    waitKey(0);

    return 0;
}

测试结果如下:

最后整个环境配置就结束了,最后这里我是使用vscode的插件cline接入了ds,让它帮我完成了后面项目环境的配置。如果本地的环境和编译都完成后,后面大家可以试试使用插件让ai帮你完成就行啦,很快的。

本篇博客是参考了其他博文的,在基础上自己操作成功后记录,自己记录一下,也供大家参考学习。原文写的很详细,强烈推荐,原文链接是:一文解决VS Code安装、C++环境配置、OpenCV配置_opencv安装教程visual code-CSDN博客

更多推荐