一、前期准备:MinGW-w64、CMake
- 参考博客:https://www.cnblogs.com/kensporger/p/12320622.html#Cmhf5DSa
二、源代码下载+编译+安装
- 参考博客:https://www.cnblogs.com/kensporger/p/12320622.html#Cmhf5DSa
- 参考博客:https://zhuanlan.zhihu.com/p/52219962
- 由于编译很麻烦,可以直接使用别人编译好的版本。缺点是定制性差,不能体会到编译的乐趣,且版本较落后。
三、添加环境变量
- 把 Mingw-w64和Opencv的bin文件夹添加到环境变量。示例:C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin和C:\OpenCV-MinGW-Build\x64\mingw\bin
四、VSCode编译环境配置
-
这里附上我的配置
c_cpp_properties.json
{ "configurations": [ { "name": "win", "includePath": [ "${workspaceFolder}/**", "D:\\opencv\\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\\include", "D:\\opencv\\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\\include\\opencv2" ], "defines": [], "compilerPath": "D:/mingw64/bin/g++.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "clang-x64" } ], "version": 4 }
launch.json
{ "version": "0.2.0", "configurations": [ { "name": "opencv4.1.1 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.1.1 compile task" } ] }
tasks.json
{ "version": "2.0.0", "tasks": [ { "type": "shell", "label": "opencv4.1.1 compile task", "command": "D:/mingw64/bin/g++.exe", "args": [ "-g", "${file}", "-o", "${workspaceFolder}\\${fileBasenameNoExtension}.exe", "-I", "D:/opencv/OpenCV-MinGW-Build-OpenCV-4.1.1-x64/include", "-L", "D:/opencv/OpenCV-MinGW-Build-OpenCV-4.1.1-x64/x64/mingw/bin", "-l", "libopencv_calib3d411", "-l", "libopencv_core411", "-l", "libopencv_dnn411", "-l", "libopencv_features2d411", "-l", "libopencv_flann411", "-l", "libopencv_highgui411", "-l", "libopencv_imgcodecs411", "-l", "libopencv_imgproc411", "-l", "libopencv_ml411", "-l", "libopencv_objdetect411", "-l", "libopencv_photo411", "-l", "libopencv_stitching411", "-l", "libopencv_video411", "-l", "libopencv_videoio411", ], "options": { "cwd": "D:/mingw64/bin" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true } } ] }
五、注意事项
- anaconda和opencv存在一定的兼容性问题。当激活anaconda虚拟环境时,终端无法运行编译好的基于c++opencv的exe程序,会出现“无法定位程序输入点于动态链接库”。