VSCode配置OpenCV开发 计算机视觉VSCode搭建C++环境

首先配置MinGW-w64环境并添加到Path,再在vscode中安装C/c++扩展,接着配置c_cpp_properties.json指定opencv头文件路径,修改tasks.json加入编译和链接参数,设置launch.json用于调试,最后编写测试程序验证环境是否搭建成功。

VSCode配置OpenCV开发 计算机视觉VSCode搭建C++环境

简单来说,要在VSCode里愉快地进行OpenCV的C++开发,你需要配置好C++环境,然后让VSCode知道OpenCV的头文件和库在哪里。

配置OpenCV开发环境,让VSCode成为你的计算机视觉利器!

如何安装MinGW-w64并配置环境变量?

MinGW-w64是windows环境下GCC编译器的发行版,是C++开发的基础。首先,访问SourceForge下载MinGW-w64,注意选择正确的架构(通常是x86_64)和异常处理模型(seh或sjlj,推荐seh)。安装时,选择一个合适的安装目录,比如

C:mingw64

安装完成后,需要配置环境变量。打开“系统属性” -> “高级” -> “环境变量”,在“系统变量”中找到“Path”,点击“编辑”,添加MinGW-w64的

bin

目录到Path中,例如

C:mingw64in

。这样,你就可以在命令行中使用g++命令了。

立即学习C++免费学习笔记(深入)”;

验证是否安装成功,可以在cmd窗口输入

g++ -v

,如果显示g++的版本信息,就说明安装成功了。如果提示找不到命令,检查环境变量是否配置正确。有时候,重启电脑可以解决环境变量不生效的问题,玄学但有效。

如何在VSCode中配置C++编译环境?

VSCode本身只是一个编辑器,需要借助插件来支持C++开发。安装C/C++扩展,这个是微软官方的,必备。

安装好C/C++扩展后,需要配置

tasks.json

launch.json

文件。这两个文件分别用于配置编译任务和调试任务。

在VSCode中打开你的C++项目,按下

Ctrl+Shift+P

,输入“C/C++: Edit Configurations (JSON)”,选择生成

c_cpp_properties.json

文件。在这个文件中,你需要指定OpenCV的头文件路径。例如:

{     "configurations": [         {             "name": "Win32",             "includePath": [                 "${workspaceFolder}/**",                 "C:/opencv/build/include" // OpenCV头文件路径             ],             "defines": [                 "_DEBUG",                 "UNICODE",                 "_UNICODE"             ],             "windowsSdkVersion": "10.0.19041.0",             "compilerPath": "C:/mingw64/bin/g++.exe", // g++编译器路径             "cStandard": "c17",             "cppStandard": "c++17",             "intelliSenseMode": "windows-gcc-x64"         }     ],     "version": 4 }

同样,按下

Ctrl+Shift+P

,输入“Tasks: Configure Task”,选择“C/C++: g++.exe build active file”生成

tasks.json

文件。修改

tasks.json

文件,添加OpenCV库的链接选项。例如:

{     "version": "2.0.0",     "tasks": [         {             "type": "cppbuild",             "label": "C/C++: g++.exe build active file",             "command": "C:/mingw64/bin/g++.exe",             "args": [                 "-fdiagnostics-color=always",                 "-g",                 "${file}",                 "-o",                 "${fileDirname}${fileBasenameNoExtension}.exe",                 "-I",                 "C:/opencv/build/include", // OpenCV头文件路径                 "-L",                 "C:/opencv/build/x64/mingw/lib", // OpenCV库文件路径                 "-lopencv_world450" // OpenCV库名称,根据你的OpenCV版本修改             ],             "options": {                 "cwd": "${fileDirname}"             },             "problemMatcher": [                 "$gcc"             ],             "group": {                 "kind": "build",                 "isDefault": true             },             "detail": "Task generated by Debugger."         }     ] }

最后,配置

launch.json

文件,用于调试程序。按下

Ctrl+Shift+P

,输入“Debug: Open launch.json”,选择“C++ (GDB/LLDB)”生成

launch.json

文件。修改

launch.json

文件,指定可执行文件的路径。例如:

{     "version": "0.2.0",     "configurations": [         {             "name": "C++ Launch",             "type": "cppdbg",             "request": "launch",             "program": "${fileDirname}/${fileBasenameNoExtension}.exe",             "args": [],             "stopAtEntry": false,             "cwd": "${workspaceFolder}",             "environment": [],             "externalConsole": false,             "MIMode": "gdb",             "miDebuggerPath": "C:/mingw64/bin/gdb.exe", // gdb调试器路径             "setupCommands": [                 {                     "description": "Enable pretty-printing for gdb",                     "text": "-enable-pretty-printing",                     "ignoreFailures": true                 }             ]         }     ] }

注意替换文件中的路径为你自己的OpenCV和MinGW-w64的安装路径。

OpenCV库文件应该如何正确链接?

链接OpenCV库是让你的程序能够使用OpenCV函数的关键。在

tasks.json

文件中,

-l

选项用于指定要链接的库。OpenCV的库名称通常是

opencv_world

加上版本号。例如,如果你的OpenCV版本是4.5.0,那么库名称就是

opencv_world450

确保

-l

选项指定的路径是OpenCV库文件所在的目录。通常,这个目录是

C:/opencv/build/x64/mingw/lib

如果你的程序使用了OpenCV的特定模块,例如

opencv_imgproc

opencv_core

,你需要在

-l

选项中添加这些模块的库名称。

有时候,链接顺序也很重要。如果你的程序在链接时出现未定义的引用错误,尝试调整库的链接顺序。

遇到编译错误undefined reference to”怎么办?

这是最常见的OpenCV配置问题。通常是因为以下原因:

  1. OpenCV库未正确链接:检查
    tasks.json

    文件中的

    -l

    选项是否正确指定了OpenCV库的名称和路径。

  2. 头文件未包含:确保你的C++代码中包含了所有需要的OpenCV头文件。例如,如果你使用了
    cv::imread

    函数,你需要包含

    <opencv2/imgcodecs.hpp>

  3. 库文件路径错误:检查
    tasks.json

    文件中的

    -l

    选项是否指向了正确的OpenCV库文件目录。

  4. 编译器架构不匹配:确保你的编译器架构(例如x64)与OpenCV库的架构匹配。如果你使用的是64位的OpenCV库,你需要使用64位的编译器。
  5. OpenCV版本不匹配:确保你的代码中使用的OpenCV函数与你安装的OpenCV版本匹配。不同版本的OpenCV可能存在API变化。

如果问题仍然存在,尝试清理你的项目并重新构建。在VSCode中,你可以使用“Tasks: Run Task”命令,选择“C/C++: g++.exe build active file”来重新构建你的项目。

如何编写一个简单的OpenCV程序来测试配置是否成功?

创建一个名为

main.cpp

的文件,包含以下代码:

#include <iostream> #include <opencv2/opencv.hpp>  int main() {     cv::Mat image = cv::imread("test.jpg"); // 读取图像     if (image.empty()) {         std::cout << "Could not open or find the image" << std::endl;         return -1;     }     cv::imshow("Display window", image); // 显示图像     cv::waitKey(0); // 等待按键     return 0; }

将一个名为

test.jpg

的图像文件放在与

main.cpp

相同的目录下。

按下

Ctrl+Shift+B

构建项目,然后按下

F5

运行程序。如果一切配置正确,你应该能够看到一个窗口显示

test.jpg

图像。

如果程序能够成功编译和运行,并且能够显示图像,那么恭喜你,你的OpenCV开发环境已经配置成功了!现在你可以开始使用OpenCV进行计算机视觉开发了。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享