VSCODE通过MinGW和CMake搭建OpenCV

VSCODE通过MinGW和CMake搭建OpenCV

本文主要做自学记录作用,若侵权留言删
参考文献:

VScode搭建OpenCV环境;

VS code配置C/C++、OpenCV(Windows);

将 VSCode 打造成 OpenCV 的 IDE(C++,window10 1803);

1、前言

VSCODE属于编辑器,不带编译功能,因此需要借助MinGW,CMake来对OpenCV进行编译,编译的过程中,需要对各个工具的版本兼容进行对应统一,避免出现意外麻烦,因此推荐优先访问OpenCV-MinGW-Build。这里面有已经编译过的OpenCV库,可以直接下载使用。点击Configuration可以查看MinGW和CMake的对应关系

OpenCV MinGW CMake
3.3.1 x86-5.3.0 3.9.2
3.4.1 x86-5.3.0 3.9.2
3.4.1-x64 x64-4.8.1-release-posix-seh-rev5 3.12.0
3.4.5 x86-5.3.0 3.12.4
3.4.6 x86-7.3.0 3.14.1
3.4.7 x86-7.3.0 3.14.1
3.4.8-x64 x64-7.0.0 3.16.0-rc3
3.4.9 x86-7.3.0 3.14.1
4.0.0-alpha-x64 x64-4.8.1-release-posix-seh-rev5 3.12.0
4.0.0-rc-x64 x86_64-8.1.0-posix-seh-rt_v6-rev0 3.12.4
4.0.1-x64 x86_64-8.1.0-posix-seh-rt_v6-rev0 3.12.4
4.1.0 x86-7.3.0 3.14.1
4.1.0-x64 x86_64-8.1.0-posix-seh-rt_v6-rev0 3.14.1
4.1.1-x64 x86_64-8.1.0-posix-seh-rt_v6-rev0 3.14.1
4.5.0-with-contrib x86-7.3.0 3.18.4
4.5.2-x64 x86_64-8.1.0-posix-seh-rt_v6-rev0 3.18.4

2、VSCODE安装及配置

2.1、VSCODE下载安装:

在VSCODE官网选择自己系统对应版本下载:

VSCODE通过MinGW和CMake搭建OpenCV_第1张图片

双击下载的exe文件手一路下一步并记住自己所安装的路径,建议默认路径:

VSCODE通过MinGW和CMake搭建OpenCV_第2张图片

添加环境路径需要重启,此时重启电脑。

2.2、配置C++以及Chinese插件

在扩展模块中输入C++找到C/C++插件,点击install安装C/C++插件。

VSCODE通过MinGW和CMake搭建OpenCV_第3张图片

在扩展模块中输入Chinese找到Chinese插件,点击install安装Chinese插件。

VSCODE通过MinGW和CMake搭建OpenCV_第4张图片

3、MinGW安装与配置

3.1、MinGW安装

点击进入MinGW官网,MinGW的安装分为在线安装和离线安装。

VSCODE通过MinGW和CMake搭建OpenCV_第5张图片

离线安装是一个软件压缩包,点击解压缩可以看到

VSCODE通过MinGW和CMake搭建OpenCV_第6张图片

在线安装是一个exe,双击mingw-w64-install.exe点击Next选择Version,Architecture,Threads,Exception等信息:

VSCODE通过MinGW和CMake搭建OpenCV_第7张图片

(版本)Version: 选择 8.1.0
(架构)Architecture: 32位cpu 选择 i686,64位cpu 选择 x86_64
(线程模式)Threads: 如果使用 posix api 选择 posix,如果使用 win32 api 选择win32
(异常处理机制) Exception: 有三种,根据机器情况进行选择
SJLJ (setjmp/longjmp) 兼容性好,32位或64位架构都可以使用,但速度慢
SEH (zero overhead exception) 速度很快,但只能用于64位架构(编译版本)Build revision 选择最高的

点击Next后选择安装路径:C:\mingw64;这里路径不使用默认路径,因为最好不要有空格符号。

VSCODE通过MinGW和CMake搭建OpenCV_第8张图片

不推荐使用在线安装模式,因为下载奇慢。

3.2、配置

参考Installation from source for Windows with MinGW-W64。

完成安装后,添加C:\mingw64\mingw64\bin路径到Path路径中。

VSCODE通过MinGW和CMake搭建OpenCV_第9张图片

为了检查MinGW是否成功安装,打开cmd输入:

mingw32-make --version

VSCODE通过MinGW和CMake搭建OpenCV_第10张图片

g++ --version

在这里插入图片描述

网络上部分博客有写到:

gcc --version

在这里插入图片描述

以上验证都表明MinGW已经安装配置成功。

4、CMake安装与配置

进入官网GitHub选择对应的CMake版本进行下载,双击msi文件进行安装,一路Next直到:

VSCODE通过MinGW和CMake搭建OpenCV_第11张图片

根据自己情况选择是否添加到环境路径。这里选择第二个。同时记住自己的安装路径:C:\Program Files\CMake\

VSCODE通过MinGW和CMake搭建OpenCV_第12张图片

完成安装后,在MinGW配置路径可以知道这里CMake已经添加进去了。

VSCODE通过MinGW和CMake搭建OpenCV_第13张图片

打开cmd输入:

cmake --version

在这里插入图片描述

以上验证都表明CMake已经安装配置成功。

5、OpenCV解压缩配置

在OpenCV官网下载Windows版本。

VSCODE通过MinGW和CMake搭建OpenCV_第14张图片

双击exe文件安装在指定路径:

VSCODE通过MinGW和CMake搭建OpenCV_第15张图片

这里没有使用默认路径,据其他博客说到可能CMake时会报错(可能时权限问题),因此这里没做验证直接更改,在D:\Users\xxx\Desktop\opencv_452\opencv\build\x64路径下新建一个文件夹,命名为MinGW(可自定义)。

VSCODE通过MinGW和CMake搭建OpenCV_第16张图片

6、生成MakeFiles

cmake的过程中会需要下载一批文件,若无法的情况下载C:\Windows\System32\drivers\etc\hosts文件最后追加:151.101.72.133 raw.githubusercontent.com这些文件都在raw.githubusercontent.com上,如果不修改一下hosts,许多文件很可能会下载失败。 已验证,毫无效果,需要自己手动下载安装

打开cmake-gui后选择源文件路径和保存路径:

Where is the source code 选择如下:

VSCODE通过MinGW和CMake搭建OpenCV_第17张图片

Where to build the binaries选择如下:

VSCODE通过MinGW和CMake搭建OpenCV_第18张图片

Makefiles保存路径:D:\Users\xxx\Desktop\opencv_452\opencv\build\x64\MinGW

VSCODE通过MinGW和CMake搭建OpenCV_第19张图片

配置完成后点击Configure,弹出窗口选择配置如下。

VSCODE通过MinGW和CMake搭建OpenCV_第20张图片

注意下拉框选择MinGW Makefiles,之后一路Next选择MinGW中的文件,选择MinGW中的C 和 C++编译的exe程序:

选择文件所在位置如下:

VSCODE通过MinGW和CMake搭建OpenCV_第21张图片

选择完成后点击Finish,耐心等待进度条完毕:

VSCODE通过MinGW和CMake搭建OpenCV_第22张图片

执行过程中消息框中会出现一堆红色信息,这是正常的,最后显示Configure done。

VSCODE通过MinGW和CMake搭建OpenCV_第23张图片

这里第一次config的完成后,search 中查找一些参数进行相应操作:

输入wo查找BUILD_opencv_world,勾选:

在这里插入图片描述

输入opengl,查找WITH_OPENGL勾选:

在这里插入图片描述

输入exa,查找BUILD_EXAMPLES勾选:

VSCODE通过MinGW和CMake搭建OpenCV_第24张图片

输入python,查找BUILD_opencv_python3勾选

在这里插入图片描述

输入CPU,查找CPU_DISPATCH选空:

在这里插入图片描述

输入mo,查找OPENCV_EXTRA_MODULES_PATH,当额外添加contrib内容时添加:

在这里插入图片描述

输入ipp,查找WITH_IPP不勾选:

VSCODE通过MinGW和CMake搭建OpenCV_第25张图片

输入head,查找ENABLE_PRECOMPILED_HEADERS不勾选:

在这里插入图片描述

输入ms,查找WITH_MSMF不勾选:

VSCODE通过MinGW和CMake搭建OpenCV_第26张图片

输入java,查找BUILD_JAVA、BUILD_opencv_java_bindings_generator不勾选:

VSCODE通过MinGW和CMake搭建OpenCV_第27张图片

这些操作完成后,再次点击Configure,若上面仍有红色则再一次Configure直到没有为止:

VSCODE通过MinGW和CMake搭建OpenCV_第28张图片

前面修改了host文件,个人觉得并没有什么用处,因此此处对其进行删除。找到编译目标文件夹MinGW中的CMakeDownloadLog.txt文件:

VSCODE通过MinGW和CMake搭建OpenCV_第29张图片

双击打开后发现仍有部分文件未下载,关于文件中内容的解释请参考之前博客。

VSCODE通过MinGW和CMake搭建OpenCV_第30张图片

我们需要通过下载源地址将文件放在文件暂存路径里面,命名则是“check_md5”栏的文件名。其中 .cmake 和 .i 文件需要右击另存为来保存。所有缓存文件在源文件下的 .cache 文件夹中:(这里有不明白的可以留言或者私信询问

VSCODE通过MinGW和CMake搭建OpenCV_第31张图片

操作完成后再次点击Configure:

VSCODE通过MinGW和CMake搭建OpenCV_第32张图片

此时在该区域不再爆红,则可以进行Generate操作:

VSCODE通过MinGW和CMake搭建OpenCV_第33张图片

7、编译OpenCV

通过win+r输入cmd进入终端

D:
cd D:\Users\humeme\Desktop\opencv_452\opencv\build\x64\MinGW

VSCODE通过MinGW和CMake搭建OpenCV_第34张图片

minGW32-make

VSCODE通过MinGW和CMake搭建OpenCV_第35张图片

如果报错可查阅下面的网址帮助:https://blog.huihut.com/2018/07/31/CompiledOpenCVWithMinGW64/,一般问题都是可以通过勾选和去勾选解决的,回到CMake-gui页面重新进行Configure和Generate后,重新输入minGW32-make进行编译。

中间出现一次关于opencv-python 的错误,但在上面网站未找到解决方案,因此,不勾选python相关模块后重新编译完成。

VSCODE通过MinGW和CMake搭建OpenCV_第36张图片

完成后输入。

mingw32-make install

VSCODE通过MinGW和CMake搭建OpenCV_第37张图片

以上就完成了cmake对OpenCV的编译过程,并把目标文件和可执行文件install在MinGW文件下。

添加MinGW-bin路径到环境路径下

D:\Users\xxx\Desktop\opencv_452\opencv\build\x64\MinGW\bin

VSCODE通过MinGW和CMake搭建OpenCV_第38张图片

8、OpenCV-VSCODE配置

新建文件夹后打开。

VSCODE通过MinGW和CMake搭建OpenCV_第39张图片

VSCODE 的使用指南请参考

【VS Code 搭建轻量美观的 C/C++开发环境】

创建hello_opencv.cpp文件并输入相关代码,准备相关验证图片:

#include 
#include 
#include 
using namespace cv;
int main()
{
    Mat img=imread("111.jpg");
    imshow("image",img);
    waitKey();
    return 0;
}

VSCODE通过MinGW和CMake搭建OpenCV_第40张图片

新建文件夹,并创建tasks.json,launch.json,c_cpp_properties.json等三个文件:

VSCODE通过MinGW和CMake搭建OpenCV_第41张图片

tasks.json内容如下:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "D:/Users/humeme/Desktop/opencv_452/opencv/build/x64/MinGW/install/x64/mingw/bin/libopencv_world452.dll"
                "-I",
                "D:/Users/humeme/Desktop/opencv_452/opencv/build/x64/MinGW/install/include",
                "-I",
                "D:/Users/humeme/Desktop/opencv_452/opencv/build/x64/MinGW/install/include/opencv2",
            ],
            "options": {
                "cwd": "C:/mingw64/mingw64/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

VSCODE通过MinGW和CMake搭建OpenCV_第42张图片

launch.json内容如下:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/mingw64/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件"
        }
    ]
}

VSCODE通过MinGW和CMake搭建OpenCV_第43张图片

c_cpp_properties.json内容如下:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/Users/humeme/Desktop/opencv_452/opencv/build/x64/MinGW/install/include",
                "D:/Users/humeme/Desktop/opencv_452/opencv/build/x64/MinGW/install/include/opencv2"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "C:/mingw64/mingw64/bin/g++.exe",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

VSCODE通过MinGW和CMake搭建OpenCV_第44张图片

最后按F5会生成调试,在文件夹下生成一个exe文件。

VSCODE通过MinGW和CMake搭建OpenCV_第45张图片

该exe文件需要到文件夹下双击运行才可看到结果。
VSCODE通过MinGW和CMake搭建OpenCV_第46张图片

你可能感兴趣的:(c++)