前言

   本文包括VScode安装C++环境配置以及OpenCV配置全过程。VS Studio配置OpenCV比较简单,可以直接使用OpenCV官网已有的用VS Studio编译器编译好的OpenCV库。但VS Code不能直接利用VS Studio编译好的OpenCV库,因此需要借助MinGW-64和CMake工具对OpenCV源码重新进行编译(编译前提是C:\Users目录下不能包含中文,否则无法成功编译)。

一、资源下载

1、VS Code

⭐百度网盘是我自己下载的版本,与官网最新版本不一定一致。
   1)百度网盘下载:VSCodeSetup-x64-1.66.2.exe (提取码:ggec)
   2)官网下载:Visual Studio Code(官网下载速度很慢,可以安装IDM,使用方法可参考下载外网资源加速)

2、MinGW-w64

   1)百度网盘下载:x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z (提取码:2dis)
   2)官网下载:MinGW-w64离线包下载地址(一定要是"seh"后缀的,千万别错了!!!)

3、CMake

   1)百度网盘下载:cmake-3.9.0-rc3-win64-x64 .zip (提取码:h7tj)
   2)官网下载:CMake(要选择二进制文件,即Binary distributions栏目)

4、OpenCV

   1)百度网盘下载:opencv-4.5.5-vc14_vc15.exe (提取码:0hf7)
   2)官网下载:OpenCV

二、环境配置

1、VS Code安装

  双击.exe文件开始安装,同意此协议,点击下一步:

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

  点击下一步:

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

  点击安装:

2、VS Code的C++配置

  选择喜欢的界面形式,点击Mark Done:

  按图中所示步骤安装C/C++C/C++ Extension PackC/C++ IntellisenseCode Runner插件:

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

  选择trust:

  点击左上角File --> New File --> 按ctrl+s保存文件名为hello.cpp,写一个测试代码:

#include<iostream>
using namespace std;int main(){cout<<"Hello world!"<<endl;return 0;
}

  VS code每次修改代码都需要手动保存才能编译,否则会报错,这里设置一下自动保存:

  点击右上角三角形进行编译:

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

3、MinGW-w64安装

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

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

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

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

4、OpenCV配置

  将opencv-4.5.5-vc14_vc15.exe解压到除C盘外的其他盘内(若是C盘,cmake 时很可能报错)

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

5、CMake安装

  将cmake-3.9.0-rc3-win64-x64解压,文件夹如图所示:

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

  检查cmake是否安装成功:

6、生成MakeFiles

  进入D:\cmake-3.9.0-rc3-win64-x64\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_worldWITH_ OPENGLBUILD EXAMPLES,不勾选WITH_IPPWITH_MSMFENABLE_PRECOMPILED_HEADERS (如果有的话),CPU_ DISPATCH选空。再次点击Configure
  -->耐心等待中。。。
  这次执行完后仍有错误如下:

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

https://raw.githubusercontent.com/opencv/opencv_3rdparty/4d348507d156ec797a88a887cfa7f9129a35afac/ffmpeg/opencv_videoio_ffmpeg.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:\opencv\build\x64\MinGW\bin加入环境变量(添加到系统变量中):

8、VS Code配置

(1)launch.json配置




  在生成的launch.json文件中复制一下代码(需要配置miDebuggerPath项,注意修改name、preLaunchTask的 opencv版本号):

{"version": "0.2.0","configurations": [{"name": "opencv4.5.5 debuge","type": "cppdbg","request": "launch","program": "${workspaceFolder}\\${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": true,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "gdb","miDebuggerPath": "D:/mingw64/bin/gdb.exe","setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": false}],"preLaunchTask": "opencv4.5.5 compile task"}]
}

(2)c_cpp_properties.json配置

  按快捷键crtl+shift+p,出现如下弹窗:
  点击C/C++:Edit Confighrations(UI)进行如下配置:



  配置完成会自动生成c_cpp_properties.json文件:

(3)task.json配置

  点击Terminal的Configure Tasks:

  出现如下弹窗,选择C/C++:g++.exe生成活动文件

  生成task.json文件:

(4)settings.json配置

  按ctrl+, 出现如下弹窗,输入code-runner:Executor Map,点击下方的 Edit in settings.json

点击 Edit in settings.json之后会生成settigs.json(该文件地址是:C:\Users\WCJ\AppData\Roaming\Code\User\settings.json),在生成的settings.json中复制如下代码(注意修改cpp项的地址和链接插件):

{"workbench.colorTheme": "Default Light+","editor.suggest.snippetsPreventQuickSuggestions": false,"code-runner.runInTerminal": true,"files.autoSave": "afterDelay","code-runner.executorMap": {"javascript": "node","java": "cd $dir && javac $fileName && java $fileNameWithoutExt","c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt","cpp":"cd $dir && g++ $fileName -o $fileNameWithoutExt -I D:/opencv/build/include -L D:/opencv/build/x64/MinGW/bin  -l libopencv_world455 -l opencv_videoio_ffmpeg455_64 && $dir$fileNameWithoutExt","objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt","php": "php","python": "python -u","perl": "perl","perl6": "perl6","ruby": "ruby","go": "go run","lua": "lua","groovy": "groovy","powershell": "powershell -ExecutionPolicy ByPass -File","bat": "cmd /c","shellscript": "bash","fsharp": "fsi","csharp": "scriptcs","vbscript": "cscript //Nologo","typescript": "ts-node","coffeescript": "coffee","scala": "scala","swift": "swift","julia": "julia","crystal": "crystal","ocaml": "ocaml","r": "Rscript","applescript": "osascript","clojure": "lein exec","haxe": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt","rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt","racket": "racket","scheme": "csi -script","ahk": "autohotkey","autoit": "autoit3","dart": "dart","pascal": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt","d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt","haskell": "runhaskell","nim": "nim compile --verbosity:0 --hints:off --run","lisp": "sbcl --script","kit": "kitc --run","v": "v run","sass": "sass --style expanded","scss": "scss --style expanded","less": "cd $dir && lessc $fileName $fileNameWithoutExt.css","FortranFreeForm": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt","fortran-modern": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt","fortran_fixed-form": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt","fortran": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"},"window.zoomLevel": 1,"files.associations": {"iostream": "cpp","ostream": "cpp"}
}

三、测试案例

1、测试代码

#include <iostream>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\opencv.hpp>
using namespace std;
using namespace cv;int main()
{string path = "C:/Users/WCJ/Desktop/0402/01/0.bmp";cv::Mat img = imread(path);imshow("img",img);waitKey(0);return 0;
}

2、测试结果

一文解决VS Code安装、C++环境配置、OpenCV配置相关推荐

  1. 解决Visual Code安装中文插件失败问题

    解决Visual Code安装中文插件失败问题 参考文章: (1)解决Visual Code安装中文插件失败问题 (2)https://www.cnblogs.com/achillis/p/10449 ...

  2. Tomcat下载安装与环境变量的配置

    注意:安装Tomcat之前,一定要先安装好JDK并正确配置jdk环境变量: 参考教程:JDK的安装与环境变量的配置 1.Tomcat下载 (1)百度搜索"Tomcat官网".&qu ...

  3. Python安装与环境变量的配置

    Python安装与环境变量的配置 python下载: Python安装包下载地址 1 . 选择Windows系统的 2 . 选择相应的32/64位版本点击下载 python安装: 1 . 下载完成后, ...

  4. jdk安装和环境变量的配置

    jdk安装和环境变量的配置 1.jdk 下载链接:  http://www.oracle.com/technetwork/java/javase/downloads/index.html    (下拉 ...

  5. window安装python3装环境变量_Windows下的Python安装与环境变量的配置

    Windows下的Python安装与环境变量的配置 第一步:python下载: 第二步:python安装: 双击下载包,进入Python安装向导. 此处省略安装时的配图,下一步.下一步即可.但请要注意 ...

  6. java8安装_科学网—Java JDK 8 的安装以及环境变量的配置(Linux and Windows) - 彭勇的博文...

    Java JDK 8 的安装以及环境变量的配置(Linux and Windows) JDK(Java Development Kit)包括了Java语言的编译器,可以在这里下载: 根据操作系统选择相 ...

  7. Java jdk的安装 与 环境变量的配置

    Java jdk的安装 与 环境变量的配置 1. 下载jdk (1)打开浏览器,在地址栏中输入 http://www.oracle.com/index.html,进入到Oracle的官方主页: (2) ...

  8. 如何安装java环境和如何配置java环境

    https://jingyan.baidu.com/article/0202781175839b1bcc9ce529.html java如今是一门十分热门的可跨平台面向对象的高级编程语言,那么作为学习 ...

  9. JDK安装及环境变量的配置

    一.获取JDK 下载地址官网根据自己的系统选择合适的JDK版本,教程选择windows7 64位(也可直接使用下文提供的下载地址直接下载) 下载之前需勾选Accept License Agreemen ...

最新文章

  1. python acm 素数个数_湘潭大学OJ-1098求区间内素数个数问题
  2. 你真的弄明白了吗?Java并发之AQS详解
  3. 使用Python语言开发爬虫有什么优势?
  4. Python 提取数据库(Postgresql)并邮件发送
  5. MyBatis中多表查询(业务代码方式)
  6. mysql数据库基础 博客园_MySQL数据库基础
  7. Windows下DNS ID欺骗的原理与实现
  8. 1631. 最小体力消耗路径
  9. AJAX Wrapper for .NET
  10. python解码和编码的区别_python基础小知识,is和==的区别,编码和解码
  11. 每个Python程序员都应该有它。
  12. Html5 postmessage 子父窗口传值
  13. python close函数_Python math.isclose() 方法
  14. java微信支付超时_Java语言:微信支付之关闭订单
  15. background图片叠加_java实现图片的叠加效果
  16. 通用样式 -表格的每行的复选框选中打印,清除已勾选
  17. 技术总结--android篇(四)--工具类总结
  18. CST结果导入MATLAB,请教大家可以将CST结果调入到MATLAB中进行计算吗
  19. 详细说明如何在pycharm不联网的情况下,离线安装第三方库及依赖包(如sklearn)
  20. 无线传感网学习笔记(8)—— DSDV路由协议 和 AODV路由协议

热门文章

  1. JS任意截图并上传图片,上传视频、上传文件
  2. fpga 实现阵列信号处理
  3. Lua游戏开发(一)---Lua语言
  4. Windows下MySQL数据库的安装、配置及C++使用案例
  5. 二重积分转换成极坐标_极坐标变换计算二重积分中积分限转换的一种简单方法...
  6. 【下载eclipse旧版本】
  7. 基于51单片机的科学计算器
  8. uni-app实现上传图片或者文件(直接上代码)
  9. Java常见异常种类及产生原因
  10. Linux环境安装curl