VSCode做爲一個輕量級的編程軟件,不管在界面、內存佔用和速度等方面都完勝VS。但用vscode來寫opencv代碼須要本身編譯OpenCV(若是是VS安裝opencv則不須要本身編譯opencv,由於在opencv的官網上就有編譯好的文件),主要用到MinGW-w64和CMake工具。前先後後折騰了很久,終於配好了opencv的環境,寫篇博客,一是爲了怕本身忘了,又要從新學,二是分享一下本身的經驗。主要參考兩篇博客:php
https://www.cnblogs.com/kensporger/archive/2020/02/19/12320622.htmlhtml
https://blog.csdn.net/zhaiax672/article/details/88971248c++
1.安裝MinGW-w64git
MinGW-w64下載地址github
https://github.com/huihut/OpenCV-MinGW-Buildshell
(參考博客:https://www.cnblogs.com/kensporger/archive/2020/02/19/12320622.html)編程
配置環境變量json
2.安裝CMakeapi
CMake下載地址:多線程
配置環境變量
記得重啓電腦使3個環境變量生效
3.生成MakeFiles
須要去官網下載OpenCV的sources源文件,若是下載太慢,能夠找找百度網盤,或者是國內鏡像網站
https://www.bzblog.online/wordpress/index.php/2020/03/09/opencvdownload/
注意:是下載opencv對應的source源文件
打開CMake-gui.exe,點擊configure,會出現一些問題,主要是會卡在下載ffmpge文件,須要改下host文件,這時只能耐心等待了。再次點擊configure,完成後點generate。
Cmake下載文件時一次不成功,那就再來一次
4.編譯opencv
CMD到MakeFiles所在文件夾(shift+右鍵,選擇powershell打開),執行minGW32-make命令,或者使用多線程minGW32-make -j 4命令:
編譯過程當中可能會出現各類各樣的錯誤,不要急,主要是返回第三步,去掉勾選,再次點擊configure,generate。
好了,opencv編譯成功,最後只剩下在VSCode中配置opencv了(筒子們,離最後的勝利不遠了,堅持)
編譯完成後記得輸入minGW32-make install完成裝載,這樣纔會生成Install文件夾。
5.VSCode配置
c_cpp_properties.json
{ "configurations": [ { "name": "win", "includePath": [ "${workspaceFolder}/**", "D:\\OpenCV4.4.0\\build\\x64\\mingw\\install\\include", "D:\\OpenCV4.4.0\\build\\x64\\mingw\\install\\include\\opencv2" ], "defines": [], "compilerPath": "C:/Users/chong/Downloads/mingw64/bin/gcc.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "clang-x64" } ], "version": 4 }
launch.json
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/${fileBasenameNoExtension}.o", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:/Users/chong/Downloads/mingw64/bin/gdb.exe", "preLaunchTask": "g++", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ] }, ] }
tasks.json
{ "version": "2.0.0", "command": "g++", "args": [ "-g", "-std=c++11", "${file}", "-o", "${fileBasenameNoExtension}.o", "-I", "D:\\OpenCV4.4.0\\build\\x64\\mingw\\install\\include", "-I", "D:\\OpenCV4.4.0\\build\\x64\\mingw\\install\\include\\opencv2", "-L", "D:\\OpenCV4.4.0\\build\\x64\\mingw\\lib", "-l", "libopencv_calib3d440", "-l", "libopencv_core440", "-l", "libopencv_dnn440", "-l", "libopencv_features2d440", "-l", "libopencv_flann440", "-l", "libopencv_gapi440", "-l", "libopencv_highgui440", "-l", "libopencv_imgcodecs440", "-l", "libopencv_imgproc440", "-l", "libopencv_ml440", "-l", "libopencv_objdetect440", "-l", "libopencv_photo440", "-l", "libopencv_stitching440", "-l", "libopencv_video440", "-l", "libopencv_videoio440" ],// 編譯命令參數 "problemMatcher":{ "owner": "cpp", "fileLocation":[ "relative", "${workspaceFolder}" ], "pattern":[ { "regexp": "^([^\\\\s].*)\\\\((\\\\d+,\\\\d+)\\\\):\\\\s*(.*)$", "file": 1, "location": 2, "message": 3 } ] }, "group": { "kind": "build", "isDefault": true } }
配置成功,記得點贊喲!!!