VSCODE配置OPENCV编译环境(windows)

news2025/6/18 5:31:47

参考文章:

https://www.cnblogs.com/kensporger/archive/2020/02/19/12320622.html

1. 安装MinGW-64 和 CMake,这两个一定要把环境变量添加到电脑的环境变量中,并且打开cmake-gui,细节见上文链接

2.生成MakeFiles。

          ①先从opencv官网上下载opencv windows源码,建议先在 

                C:\Windows\System32\drivers\etc\hosts文件最后追加:

     151.101.72.133 raw.githubusercontent.com

          因为cmake-gui会下载一些文件,这些文件都在raw.githubusercontent.com上,如果  不修改一下hosts,许多文件很可能会下载失败。

    打开cmake-gui后选择源文件路径和MakeFiles保存路径(自选路径),如图:

         sourcecode指的是你下载的opencv源码,第二个是你要将编译以后的代码放置的路径,可以自己创建

        然后再在compilers中选择 c和c++的编译器 ,c选择gcc, c++选择 g++

        

        执行过程中消息框会出现一堆红色信息,最后显示Configure done,是正常的。如果执行时中断,则存在其他问题。在执行完后,勾选BUILD_opencv_worldWITH_OPENGLBUILD_EXAMPLES,不勾选WITH_IPP、WITH_MSMFENABLE_PRECOMPILED_HEADERS(如果有的话),CPU_DISPATCH选空。如果要编译opencv_contrib,则需要在OPENCV_EXTRA_MODULES_PATH 把路径选择为解压的opencv_contrib文件中的“modules”文件夹。

  再次点击Configure,这次执行完后仍有错误如下:

  

 

也就是说前面虽然修改了hosts,但是有些文件仍然没有成功下载,解决的方法就是手动下载它们。可以用浏览器访问下载链接,或者使用迅雷等下载器进行下载。CMakeDownloadLog.txt文件中列出了所有丢失文件的下载链接,比如:

    https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/opencv_ffmpeg.dll

  一个个访问这些链接,下载后放到OpenCV源文件里.cache的相应子文件夹中替代原缓存文件(下载的文件重命名为相应地缓存文件名并删除原缓存文件)。这样从头到尾下载CMakeDownloadLog.txt中列出的所有丢失文件,之后,再次Configure,理论上不会出现红色的错误消息了。然后点击Generate,正常的话会显示非红色的消息Generate Done

 此处可能发生的问题就是你顺着这个链接去找源文件,但是打不开这个网站,此处推荐一个网站,GitHub Proxy 代理加速, 点进去以后就可以直接使用,此处需注意:

注意:
          1. https://raw.githubusercontent.com/opencv/opencv_3rdparty/759a23e24ab787a0979f8a93103dcc3105ec10c1/ffmpeg/ffmpeg_version.cmake" 无法直接下载,
而是直接打开了ffmpeg_version.cmake,可以右键网页选择另存为 ffmpeg_version.cmake.txt,然后再改为ffmpeg_version.cmake。这里如果自己新建一个txt,然后直接将网页上的内容拷进去,然后再改后缀为.cmake是不行的,会提示md5不匹配。(我的建议是另存为后,用VS打开之前是空的对应文件,然后用VS打开另存为的文件,将另存为的文件内容直接复制给空文件,保存空文件,这样文件的属性不会改变


        2、不同版本的OpenCV对应的 opencv_ffmpeg.dll 等缺失文件的 md5 签名是不一样的(可以直接重新命名为原来空文件的名字)

3.编译opencv
        

CMD到MakeFiles所在文件夹,执行minGW32-make命令,或者使用多线程minGW32-make -j 4命令:

  

编译完成后记得输入minGW32-make install完成装载,这样才会生成Install文件夹。

4.调配三大json文件

launch.json

"version": "0.2.0",
    "configurations": [

        {
            "name": "opencv3.4.2 debuge",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:/enviroment/mingw/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "opencv3.4.2 compile task"
        },
        {
            "type": "node",
            "request": "launch",
            "name": "启动程序",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${file}"
        }
    ]
}

cpp_properties.json

"configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/code/cppyolov5/opencvs/opencv/build/x64/mingw/install/include",
                "D:/code/cppyolov5/opencvs/opencv/build/x64/mingw/install/include/opencv2"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "D:/enviroment/mingw/mingw64/bin/gcc.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x64"
        }
    ],
    "version": 4

tasks.j

"version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "opencv3.4.2 compile task",
            "command": "D:\\enviroment\\mingw\\mingw64\\bin\\g++.exe",
            "args": [
				"-g",
				"${fileDirname}\\*.cpp",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "D:\\code\\cppyolov5\\opencvs\\opencv\\build\\x64\\mingw\\bin\\libopencv_world453.dll",
                "-I",
                "D:/code/cppyolov5/opencvs/opencv/build/x64/mingw/install/include",
                "-I",
                "D:/code/cppyolov5/opencvs/opencv/build/x64/mingw/install/include/opencv2"
            ],
            "options": {
                "cwd": "D:\\enviroment\\mingw\\mingw64\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "编译器: D:\\enviroment\\qt\\Tools\\mingw730_64\\bin\\cpp.exe"
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "D:\\enviroment\\qt\\Tools\\mingw730_64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ]
}

最后再使用ctrl + shift + b 运行对应的exe文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/411836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉树的遍历(节点个数及层序遍历)

简易树的图形&#xff1a; #include <stdio.h> #include <stdlib.h>//重定义数据类型 typedef char DataType; //创建简易的二叉树结构体 typedef struct BTNode {struct BTNode* left;struct BTNode* right;DataType data; }BTNode; //前序&#xff08;根左右&am…

2023年股票代持行业研究报告

第一章 股票代持概述 1.1 基本概念 股票代持&#xff0c;或称委托持股&#xff0c;是指实际出资人与名义出资人达成以下约定&#xff1a;名义出资人作为名义股东&#xff0c;在股东名册等公司工商登记信息上出现&#xff0c;而实际上由实际出资人出资并享有投资权益。 股票代…

WPF MVVM模式构建项目

什么是MVVM模式&#xff1f; MVVM是Model-View-ViewModel的简写&#xff0c;Model就是模型&#xff0c;View就是视图&#xff0c;ViewModel就是View和Model之间解耦和传递消息的中间层。MVVM采用双向数据绑定&#xff0c;View中数据变化将自动反映到ViewModel上&#xff0c;反之…

【并发编程】异步编程CompletableFuture实战

文章目录1.CompletableFuture简介2.CompletableFuture核心API实战3.CompletableFuture嵌套案例实战4.合并两个CompletableFuture案例实战5.多个CompletableFuture任务组合调度实战1.CompletableFuture简介 在JDK8之前&#xff0c;我们使用的Java多线程变成&#xff0c;主要是 …

Golang GORM入门

一、GORM入门 1.1 什么是ORM&#xff1f; orm是一种术语而不是软件 orm英文全称object relational mapping&#xff0c;就是对象映射关系简单来说类似python这种面向对象的程序来说一切皆对象&#xff0c;但是我们使用的数据库却都是关系型的 为了保证一致的使用习惯&#xff…

NumPy 数组学习手册:1~5

原文&#xff1a;Learning NumPy Array 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 一、NumPy 入门 让我们开始吧。 我们将在不同的操作系统上安装 NumPy 和相关软件&#xff0c;并查看一些使用 NumPy 的简单代码。 正如“序言”所述&#xff0c;SciPy 与 NumPy 密…

开放式蓝牙耳机推荐,推荐几款具有代表性的骨传导耳机

骨传导耳机是一种骨传导技术和音频技术结合的产品&#xff0c;通过声音将振动从骨头传到听觉神经&#xff0c;从而达到听音的效果。相比于传统的入耳式耳机&#xff0c;骨传导耳机佩戴更舒适&#xff0c;不会对耳朵造成损伤。然而市面上有很多不同类型的骨传导耳机&#xff0c;…

机器学习和深度学习在气象中的应用(台风预报只能订正、风速预报订正、LSTM 方法预测 ENSO)

查看原文>>>Python人工智能在气象中的实践技术应用 目录 专题一、Python 和科学计算基础 专题二、机器学习和深度学习基础理论和实操 2.1 机器学习和深度学习基础理论 2.2 sklearn 和pytorch 库 专题三 、气象领域中的机器学习应用实例 3.1 GFS 数值模式的风速…

【玩转RT-Thread】RT-Thread网络框架:BSD网络接口SAL套接字抽象层

文章目录RT-Thread网络框架&#xff1a;BSD网络接口&SAL套接字抽象层基础知识1.TCP与UDP的区别2.TCP编程 服务端配置过程3.TCP编程 客户端配置过程4.UDP编程 客户端配置过程SAL套接字抽象层1.SAL组件主要功能特点&#xff1a;2.SAL网络框架3.工作原理4.多协议接入与接口函数…

“成年人”的数据库,既要又要也要!

欢迎访问 OceanBase 官网获取更多信息&#xff1a;https://www.oceanbase.com/ 3 月 25 日&#xff0c;第一届 OceanBase 开发者大会在北京举行&#xff0c;《明说三人行》访谈栏目创始人兼主持人卢东明、沃趣科技创始人兼 CEO 陈栋、DBAplus 社群联合创始人杨建荣、PostgreSQL…

7.1 基本运算电路(2)

七、集成运放性能指标对运算误差的影响 在上述各电路运算关系的分析中&#xff0c;均认为集成运放为理想运放。而实际上&#xff0c;当利用运放构成运算电路时&#xff0c;由于开环差模增益 AodA_{od}Aod​、差模输入电阻 ridr_{id}rid​ 和共模抑制比 KCMRK_{CMR}KCMR​ 为有…

【计算机网络-应用层】域名系统 DNS、文件传输协议 FTP、电子邮件

文章目录1 域名系统 DNS1.1 域名结构1.2 域名服务器1.2.1 根域名服务器1.2.2 顶级域名服务器1.2.3 权限域名服务器1.2.4 本地域名服务器1.3 域名解析过程1.3.1 递归查询1.3.2 递归与迭代相结合查询1.3.3 本地域名服务器的高速缓存2 文件传输协议 FTP2.1 主动模式&#xff08;建…

java编译和运行带有包名的类

写在前面 对于习惯了使用ide的我们似乎早已经忘记了如何通过命令行来编译和运行java类了&#xff0c;至少我是这样的&#xff0c;本文就一起来回顾下吧&#xff01; 1&#xff1a;运行不带包的类 这种相信大多数朋友都记得&#xff0c;直接javac yourCode.java,然后java you…

Camtasia studio2023录屏和后期剪辑的软件

Camtasia 2023是专门用于屏幕录制的软件&#xff0c;功能十分丰富&#xff0c;不仅可以录制电脑屏幕、局部区域和摄像头等&#xff0c;而且还能即时编辑视频&#xff0c;给视频添加转场、旁白、字幕等&#xff0c;能够轻松制作更优秀的视频。 兼顾录屏和后期剪辑的软件—Camtas…

Oracle_EBS_核心功能(MFG)(第二部分)

BOM: Routing工艺路线应用&#xff1a;Bills of Material 职责&#xff1a;Bills of Material 基础业务学习总体说明 Routing&#xff08;工艺路线&#xff09;最终解决的问题是生产过程中加工顺序、资源和用量的标准化。准确度要求在98%以上&#xff0c;要不断与现场比对&…

【离散数学】图论

1、有n个点没有边 零图 2、有1个点没有边 平凡图 3、含有平行边的图 多重图 4、简单图 不含有平行边和自回环的图 5、任意两个结点之间都有边 完全图 6、环贡献 两度 7、所有顶点的度数之和等于边数的两倍 8、在有向图中所有顶点的出度之和 或者 入度之和 等于边数 9、度数为…

特斯拉和OpenAI的加持,马斯克简直人生赢家

赢家已定 商人行事&#xff0c;最重要的因素之一是利益驱动。这里&#xff0c;最服“马斯克”。 以马斯克为首的特斯拉公司周日宣布&#xff0c;将在上海新建一家超级工厂&#xff0c;专门生产该公司的储能产品Megapack。签约的特斯拉储能超级工厂项目也是该公司在美国本土以…

【论文笔记】CRN: Camera Radar Net for Accurate, Robust, Efficient 3D Perception

原文链接&#xff1a;https://arxiv.org/abs/2304.00670 1. 引言 本文提出两阶段融合方法CRN&#xff0c;能使用相机和雷达生成语义丰富且位置精确的BEV特征。具体来说&#xff0c;首先将图像透视特征转换到BEV下&#xff0c;该步骤依赖雷达&#xff0c;称为雷达辅助的视图变换…

大数据技术(入门篇) --- centos7安装CDH6.2集群

随着信息化时代的进步&#xff0c;业务系统的数据量出现了爆发式的增长&#xff0c;带来的不良结果就是数据库的数据量剧增&#xff0c;而部分业务系统需要实时数据&#xff0c;有些业务系统需要离线计算后的数据&#xff0c;所以就产生了大数据技术&#xff0c;因此最近在学习…

面试官:说一说mysql的varchar字段最大长度?

在mysql建表sql里&#xff0c;我们经常会有定义字符串类型的需求。 CREATE TABLE user (name varchar(100) NOT NULL DEFAULT COMMENT 名字 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 ;比方说user表里的名字&#xff0c;就是个字符串。mysql里有两个类型比较适合这个场景。 ch…