MacOS系统VSCode中C++环境配置OpenCV及头文件引用问题
MacOS下VSCode配置C++版OpenCV 4.5.5解决方案
一、确认OpenCV安装路径
- Homebrew安装的OpenCV,默认路径一般为
/usr/local/Cellar/opencv/4.5.5/include/opencv4 - 手动下载框架包安装的,路径是
/Library/Frameworks/opencv2.framework/Headers
(如果不确定路径,Homebrew安装的可以用brew info opencv命令查询)
二、正确的头文件引用
不管哪种安装方式,标准引用写法是:
#include <opencv2/opencv.hpp>
不需要添加opencv2.framework或Headers这类前缀,只要VSCode能定位到头文件路径即可。
三、配置VSCode的c_cpp_properties.json
- 按
Cmd+Shift+P,输入C/C++: Edit Configurations (JSON)打开配置文件 - 在
includePath中添加OpenCV的头文件路径,示例配置如下:
框架安装的话,把{ "configurations": [ { "name": "Mac", "includePath": [ "${workspaceFolder}/**", "/usr/local/Cellar/opencv/4.5.5/include/opencv4/**" ], "defines": [], "macFrameworkPath": ["/Library/Frameworks"], "compilerPath": "/usr/bin/clang++", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "macos-clang-x64" } ], "version": 4 }includePath里的Homebrew路径替换为"/Library/Frameworks/opencv2.framework/Headers/**"
四、配置tasks.json实现编译链接
- 按
Cmd+Shift+P,输入Tasks: Configure Task,选择C/C++: clang++ build active file - 修改
args参数,添加OpenCV的链接依赖,示例配置如下:
框架安装的话,把{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: clang++ build active file", "command": "/usr/bin/clang++", "args": [ "-std=c++17", "-stdlib=libc++", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", "-I/usr/local/Cellar/opencv/4.5.5/include/opencv4", "-L/usr/local/Cellar/opencv/4.5.5/lib", "-lopencv_core", "-lopencv_highgui", "-lopencv_imgcodecs" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": ["$gcc"], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: /usr/bin/clang++" } ] }args里的-I...和-L...替换为-framework opencv2即可。
五、测试配置有效性
写一段简单代码验证:
#include <opencv2/opencv.hpp> int main() { cv::Mat img = cv::imread("test.jpg"); if (img.empty()) { std::cout << "无法读取图片" << std::endl; return -1; } cv::imshow("Test", img); cv::waitKey(0); return 0; }
编译运行后能正常显示图片,说明配置成功。
内容的提问来源于stack exchange,提问作者jonathansl
相关产品推荐
相关产品推荐

