目录

一,预备工作:

1.安装MinGw

2.安装cmake

3.安装opencv

 二,编译opencv

 1,编译设置

 ​​2,编译环境下载

 3,开始make编译

 三,vscode配置

1,配置launch.json

2,c_cpp_properties.json

3,配置task.json

4,配置setting.json

四,开始调试

                 


一,预备工作:

  • 下载MinGw,Cmake,Opencv,我已经放在网盘里了,在文章的最下端。
        1.安装MinGw

MinGw下载下载完成直接解压即可。

  • 添加MinGw的环境变量,添加的环境路径是MinGw的bin文件夹路径,如:D:\mingw64\bin
  • 打开环境变量,点击系统变量的path,新增bin文件夹的路径
  • win+R,cmd打开命令行,输入gcc -v,出现下列信息,即表明添加成功
 2.安装cmake

cmake下载,下载3.20.2即可

  • 相同的第一步要添加环境变量
  • 然后win+R,cmd打开命令行,输入cmake -version,出现cmake的版本号即代表配置成功
3.安装opencv

下载4.5.2或4.5.3版本都可。opencv下载

 二,编译opencv

        1,编译设置
  •  编译的目的是将opencv转换为makefile文件,让其能够在g++编译器中运行
  • 安装opencv,在D盘中新建一个英文路径文件夹放入,等待安装
  • 打开cmake文件夹中的bin,打开cmake-gui,分别1,2点击,输入opencv文件夹路径和编译文件放置路径
  • 点击3设置编译的环境

 
下面的选取编译器的路径,在刚刚的mingw安装的文件夹中

 
2,编译环境下载
  • 由于国内源的问题,所以会有部分文件下载失败导致,编译失败所以要下载一部分文件,我把部分文件放到网盘的.cache内,与源文件更改文件名放入即可

  
显示0kb就表明下载失败,复制下列的名称,更改上列的名称放入

 
这是下载成功的文件,当然能挂梯子也可以尝试一下
 

  • 在执行完后,把关于python的都给取消勾选。勾选BUILD_opencv_world,WITH_OPENGL和BUILD_EXAMPLES,不勾选WITH_IPP、WITH_MSMF和ENABLE_PRECOMPILED_HEADERS(如果有的话),CPU_DISPATCH选空。 
  • 编译完成的情况​     
 3,开始make编译
  • 打开opencv/build/x64/mingw文件夹
  • 在路径区域输入cmd,打开终端,执行命令minGW32-make -j 4,当然-j 8也是可以的,取决于电脑强度

注意: 这一步是非常容易报错的,而且解决的方法也很多,可以自行复制搜索,但按照我前面的步骤,基本不会报错。

  •  成功编译后,继续在终端输入minGW32-make install进行安装
  • 接下来添加环境变量,分别是第一个path是:build/x64/vc15/bin
    第二个path是:/build/x64/mingw/bin,要找到自己文件夹的路径
  • 到此环境配置完毕,开始vscode文件的配置

 三,vscode配置

1,配置launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "opencv4.5.2 debuge",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            // 这里,需要改为自己的mingw路径
            "miDebuggerPath": "D:/MinGw/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "opencv4.5.2 compile task"
        }
    ]
}
 2,c_cpp_properties.json
{
    "configurations": [
        {
            "name": "win",
            "includePath": [
                "${workspaceFolder}/**",
                // 下面6个路径改为自己对应的路径
                "D:\\opencv\\build\\x64\\mingw\\install\\include",
                "D:\\opencv\\build\\x64\\mingw\\install\\include\\opencv2",
                "D:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                "D:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                "D:/MinGW/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32"
            ],
            "defines": [],
            // 改为自己的mingw路径
            "compilerPath": "D:/MinGW/bin/gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4
}
//这一个文件,就算不存在也能用,是规范代码的
3,配置task.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "opencv4.5.2 compile task",
            // 这里需要改为自己的mingw路径
            "command": "D:/MinGw/bin/g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${workspaceFolder}\\${fileBasenameNoExtension}.exe",
                // 下面三个路径改为自己对应的opencv编译路径
                "D:\\opencv\\build\\x64\\mingw\\bin\\libopencv_world452.dll",
                "-I",
                "D:\\opencv\\build\\x64\\mingw\\install\\include",
                "-I",
                "D:\\opencv\\build\\x64\\mingw\\install\\include\\opencv2"
            ],
            "options": {
                // 这里改为自己的mingw路径
                "cwd": "D:/MingW/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "presentation": { 
                "panel": "new" //默认为“shared“表示共享,改成new之后每个进程创建新的端口
            }
        }
    ]
}
4,配置setting.json
{
    "C_Cpp.errorSquiggles": "enabled",
    "C_Cpp.default.includePath": [
        "D:\\opencv\\build\\x64\\mingw\\install\\x64\\mingw\\lib",
        "D:\\opencv\\build\\x64\\mingw\\install\\include"/*根据自己的文件路径替换*/
    ],
    "code-runner.executorMap": {
        
        "c": "cd $dir && gcc '$fileName' -o '$fileNameWithoutExt.exe' -Wall -g -O2 -static-libgcc -std=c11 -fexec-charset=UTF-8 && &'$dir$fileNameWithoutExt'",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -I D:\\opencv\\build\\x64\\mingw\\install\\include -I D:\\opencv\\build\\x64\\mingw\\install\\include\\opencv2 -L D:\\opencv\\build\\x64\\mingw\\lib -llibopencv_world453 && $dir$fileNameWithoutExt "/*根据自己的文件路径替换*/
    },
    "files.associations": {
        "iostream": "cpp"
    }
}

注意:文件和链接的路径不要弄错

四,开始调试

 1.运行代码文件的布局

以下是调试代码,可以试着F5运行一下

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

int main()
{
    cv::Mat img = cv::imread("0.jpg");
    
    cv::imshow("i", img);
    cv::waitKey(0);

    return 0;
}

以上文件在网盘链接里,已经完成编译,修改路径和添加环境变量即可。

工程文件链接,解压密码cjjj

                 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐