參考:
win10下VSCode配置opencv4.4.0(超詳細教程,親測有效)
1、VSCode+MinGW配置C++開發環境
https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/
配置環境變量
C:\Programs\mingw-w64\bin
2、安裝CMake
配置環境變量
D:\tools\cmake-3.19.1-win64-x64\bin
3、下載OpenCV的sources源文件
https://github.com/opencv/opencv/releases
下載比較慢的話,可以換國內, OpenCV下載/OpenCV國內鏡像/opencv_contrib下載
安裝解壓到目標路徑,
在build \ x64下新建文件夾mingw。
4、使用 CMake 生成 OpenCV 的 Makefiles
運行cmake-gui,在bin下。
選擇源地址,目標地址,
點擊configure,選擇,
點擊next,選擇剛才安裝的MinGW的編譯工具,
點擊finish會開始執行,過程較慢,最后顯示Configure done,是正常的。
然后點擊Generate,正常會顯示Generate Done。
5、編譯opencv
運行cmd,cd到mingw文件夾,
執行minGW32-make命令,過程很慢,可使用多線程minGW32-make -j 4 命令,根據自己機器情況開幾個線程,
我遇到的錯誤是找不到 vs_version.rc.obj 文件,學習OpenCV3:MinGW編譯OpenCV到vs_version.rc.obj處出錯。
打開build.make文件,找到1494行,顯示在modules/core/CMakeFiles/opencv_core.dir 下找不到 vs_version.rc.obj。
新打開一個cmd窗口,cd到core目錄下 下,運行命令,可在第1494行復制,
手動生成vs_version.rc.obj,並重新運行mingw32-make。
編譯完成后運行minGW32-make install完成裝載,生成Install文件夾。
配置環境變量:
6、VSCode配置
.vscode\c_cpp_properties.json。部分添加代碼。
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}", "D:/tools/opencv/build/x64/mingw/install/include", "D:/tools/opencv/build/x64/mingw/install/include/opencv2" ],
.vscode\tasks.json。部分添加代碼。
{ "version": "2.0.0", "tasks": [ { ..."args": [ "-g", "${file}", "-o", "${workspaceRoot}/zzz_output_exe_files/${fileBasenameNoExtension}.exe", // 集中存放
"-I", "D:/tools/opencv/build/x64/mingw/install/include", "-I", "D:/tools/opencv/build/x64/mingw/install/include/opencv2", "-L", "D:/tools/opencv/build/x64/mingw/lib", "-l", "libopencv_calib3d450", // 后三位數字為opencv對應版本4.5.0 "-l", "libopencv_core450", "-l", "libopencv_dnn450", "-l", "libopencv_features2d450", "-l", "libopencv_flann450", "-l", "libopencv_gapi450", "-l", "libopencv_highgui450", "-l", "libopencv_imgcodecs450", "-l", "libopencv_imgproc450", "-l", "libopencv_ml450", "-l", "libopencv_objdetect450", "-l", "libopencv_photo450", "-l", "libopencv_stitching450", "-l", "libopencv_video450",
"-l", "libopencv_videoio450", // 不加這個處理視頻時VideoCapture會報錯 ],
...
測試文件test.cpp,
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; int main() { Mat img=imread("images/man.jpg"); // 圖片放到工程目錄下,與.vscode同一目錄 imshow("image",img); waitKey(0);
return 0; }
工程目錄下新建images文件夾,放一張圖片,運行可打開圖片,完成。