You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac+VSCode配置OpenCV报错:'opencv2/opencv.hpp'未找到

M1 Mac VSCode中OpenCV编译错误:'opencv2/opencv.hpp'文件未找到

在M1芯片的Mac上通过Homebrew安装OpenCV后,配置VSCode的c_cpp_properties.json和tasks.json后编译测试程序,出现以下错误:

fatal error: 'opencv2/opencv.hpp' file not found

代码中#include <opencv2/opencv.hpp>前有波浪线,虽IntelliSense能提供提示,但编译始终失败。


现有配置文件与测试代码

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-I",
                "/Users/user/Desktop/OpenCV/opencv/include/opencv2",
                "/usr/local/include/opencv4"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "compiler: /usr/bin/g++"
        }
    ]
}

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**",
                "/Users/user/Desktop/OpenCV/opencv/include/opencv2",
                "/usr/local/include/opencv4"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "macos-clang-arm64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

测试代码

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std; 

/////////////////  Images  //////////////////////

int main() {
    string path = "/Users/brettmylek/Desktop/OpenCV/Img/TestImg.jpg";
    Mat img = imread(path);
    imshow("Image", img);
    waitKey(0);
    return 0;
}

解决步骤

1. 修正头文件路径(核心问题)

M1 Mac上Homebrew的默认安装路径是/opt/homebrew而非/usr/local,先确认OpenCV的实际安装路径:
执行命令:

brew --prefix opencv

输出类似/opt/homebrew/Cellar/opencv/4.x.x,头文件实际位于/opt/homebrew/include/opencv4(内部包含opencv2文件夹)。

修改两个配置文件的路径:

  • c_cpp_properties.json的includePath中,移除无效的本地路径,替换为/opt/homebrew/include/opencv4
  • tasks.json的args中,每个-I必须紧跟一个路径(你的配置中/usr/local/include/opencv4前缺少-I),替换为"-I", "/opt/homebrew/include/opencv4"

2. 添加库链接参数

仅指定头文件不够,编译时需要链接OpenCV库。在tasks.json的args末尾添加:

"-L", "/opt/homebrew/lib",
"-lopencv_core", "-lopencv_imgproc", "-lopencv_highgui", "-lopencv_imgcodecs"

-L指定库文件目录,-l后接需要的模块库(根据测试代码用到的功能添加)。

3. 适配M1架构的编译器(可选)

M1 Mac推荐用clang++替代g++,避免架构兼容问题,将tasks.json中的command改为/usr/bin/clang++。


修正后的配置示例

修正后的tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: clang++ build active file",
            "command": "/usr/bin/clang++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "-I", "/opt/homebrew/include/opencv4",
                "-L", "/opt/homebrew/lib",
                "-lopencv_core", "-lopencv_imgproc", "-lopencv_highgui", "-lopencv_imgcodecs"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "compiler: /usr/bin/clang++"
        }
    ]
}

修正后的c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "${workspaceFolder}/**",
                "/opt/homebrew/include/opencv4"
            ],
            "defines": [],
            "macFrameworkPath": [
                "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
            ],
            "compilerPath": "/usr/bin/clang++",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "macos-clang-arm64",
            "configurationProvider": "ms-vscode.cmake-tools"
        }
    ],
    "version": 4
}

验证编译

保存配置后重新运行编译任务,生成可执行文件后运行,即可正常显示测试图片。

内容的提问来源于stack exchange,提问作者Mylek Dynamics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 01:15:30