版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
目录:
1.前言
2.vscode下配置opencv的逻辑分析
3.MinGW、Python与CMake的下载与安装
4.OpenCV的下载与配置
5.利用Cmake对OpenCV源文件进行编译(重中之重)
6.利用minGW32-make对生成的makefile相关文件进行编译和装载。
7.修改vscode调试配置文件
8.常见问题与解决方案(不定时更新)
1.前言
近期因为学习OpenCV的需要,考虑到本身使用vscode已经十分顺手,以及vs下调试运行慢和工程文件臃肿等问题,打算利用已有的VScode对OpenCV环境进行搭建。出于中文互联网上有关文献较为过时, 对应的OpenCV版本较老(对为3.4.5左右),且耗时一周多以来照着过时文献反复调教始终没有顺利地复现博主们成功的情况,出现诸如Cmake的configure失败、利用mingw32-make对生成的cmake文件的各种编译失败、vscode头文件解析失败、g++的各种编译失败以及编译成功后gdb的载入失败等等。经历了一周多的摸索,终于摸清配置Opencv的一些关键要点和大致原理,成功在两台电脑设备下通过同样的操作进行了成功复现,故写下此文,谨以缅怀自己逝去的青春以及为各位需要相关搭建的探索者们一份宝贵经验。
对于阅读操作以下内容的读者,需要以已完成vscode对C++环境配置为前提进行如下操作。若未完成,可参考此文。
测试环境:2020/10/20|windows10 x64|vscode 1.50.1|Mingw x64 posix seh|Cmake x64 3.19.0|Opencv 4.5.0
2.vscode下配置opencv的逻辑分析
vscode本身仅作为轻量化的文本开发环境,对于opencv的支持与vs下opencv的支持有着很大的不同,且配置繁琐度不亚于对vscode进行C/C++语言环境的搭建难度。想要使vscode能够支持windows下基于C++及mingw的OpenCV开发环境,需实现以下几个关键步骤:使vscode能够支持对于opencv的库导入和语法提示、使gcc支持对含有opencv源代码的编译、使gdb支持对含有opencv代码的可执行程序的调试。
对于opencv的库导入和语法提示,可直接通过修改.vscode配置文件中c_cpp_properties.json实现。
对于gcc对含有opencv源代码的编译,需修改task.json中编译命令行中加入相关头文件目录、链接库目录以及相关的链接库文件,而这本身opencv并不自带,需要自行通过利用cmake编译opencv源文件生成,而Cmake的编译又需要python的环境。
对于gdb对含opencv相关代码的可执行调试,需要gdb加载支持可执行文件中opencv相关功能的dll,这依然是通过利用cmake编译opencv源文件代码生成的。
3.MinGW、Python与CMake的下载与安装
MinGw的下载与安装不再做过多的阐述,具体参考我的另一篇文章,注意要点是x64版本且越新越好,推荐posix seh版本的,旧版本mingw可能会出现mingw32-make编译失败或gcc对编译失败的问题。
鉴于Python与CMake的下载和安装过于简单,此处亦不再做过多的阐释,注意要点是python只需达到2.8.0以上版本,CMake版本越新越好。
4.Opencv的下载与安装
笔者安装的是OpenCV 4.5.0版本,