关于#Mac在vscode配置opencv环境#的问题,如何解决?

本人设备mac air m1,在vscode中配置c++的opencv环境,opencv由于之前通过anaconda下载过,故最终导入的opencv在anaconda文件中。
这是launch文件

img


这是task文件

img


这是c_cpp_properties文件

img


这是一段测试代码

img


这是终端报错信息

img


请问我应该如何解决感谢🙏

通常是由于编译器和链接器设置不正确,导致。
确保所使用的 OpenCV 版本与你的项目兼容
选择了 arm64 架构
在 VSCode 的项目配置中,确保设置了正确的库路径,以便编译器可以找到 OpenCV 库。可以使用 -L 标志指定库路径
确保在链接阶段正确地链接了 OpenCV 库。使用 -lopencv_core、-lopencv_highgui 等选项来链接所需的 OpenCV 模块
确保在代码中包含了正确的 OpenCV 头文件路径。这样编译器才能找到所需的函数和类型声明
如果你使用的 OpenCV 版本较旧,尝试升级到更新版本,可能会解决某些问题

【以下回答由 GPT 生成】

首先,你需要确保你的Mac Air M1支持与OpenCV兼容的编译器。由于Apple Silicon架构与传统x86架构存在差异,所以你需要使用适用于Apple Silicon的编译器。

接下来,你可以按照以下步骤来配置在Mac上使用VSCode配置OpenCV环境:

  1. 在VSCode中安装C/C++插件,用于编写和调试C++代码。

  2. 确保你已经安装了Homebrew,可以在终端中运行以下命令来安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 使用Homebrew安装适用于Apple Silicon的OpenCV库。在终端中运行以下命令:
brew install opencv
  1. 确认OpenCV已经正确安装,可以运行以下命令来检查版本:
pkg-config --modversion opencv4
  1. 确保你的launch文件设置正确,以便VSCode能够正确调试你的代码。你需要指定正确的程序路径和调试选项。这是一个示例launch文件的配置:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C++ Launch",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/your_program",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "lldb",
      "preLaunchTask": "build"
    }
  ]
}

请将 your_program 替换为你要调试的C++程序的路径。

  1. 为了确保你的代码正确链接到OpenCV库,你需要在task文件中添加适当的编译和链接选项。这是一个示例task文件的配置:
{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "type": "shell",
      "command": "g++",
      "args": [
        "-std=c++11",
        "-I/usr/local/include",
        "-L/usr/local/lib",
        "-lopencv_core",
        "-lopencv_highgui",
        "-o",
        "your_program",
        "main.cpp"
      ],
      "group": {
        "kind": "build",
        "isDefault": true
      }
    }
  ]
}

请将 your_program 替换为你的C++程序的名称,并将 main.cpp 替换为你的源文件名称。

  1. 最后,请确保你的c_cpp_properties文件正确设置了OpenCV的包含路径和库路径。这是一个示例c_cpp_properties文件的配置:
{
  "configurations": [
    {
      "name": "Mac",
      "includePath": [
        "${workspaceFolder}/**",
        "/usr/local/include"
      ],
      "defines": [],
      "macFrameworkPath": [
        "/usr/local/Frameworks"
      ],
      "compilerPath": "/usr/bin/clang",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "clang-x64",
      "browse": {
        "path": [
          "${workspaceFolder}"
        ],
        "limitSymbolsToIncludedHeaders": true,
        "databaseFilename": ""
      }
    }
  ],
  "version": 4
}

确保将 /usr/local/include 替换为你的OpenCV的包含路径。

如果你按照以上步骤配置完毕后仍然遇到问题,请提供终端报错信息和你的代码,以便我们能够更好地帮助你解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

这篇实例方法可以借鉴下:https://www.jianshu.com/p/d93d0d37d058

OpenCV 版本与你的项目兼容

首先,你需要确保已经安装了Anaconda和OpenCV库,并且知道它们的安装路径。

然后,你需要在VS Code中打开工作目录,创建一个名为tasks.json的文件,并输入以下内容:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++ ${file} -o ${fileBasenameNoExtension} `pkg-config opencv4 --cflags --libs`",
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

这将创建一个名为“build”的任务,在按下“Ctrl + Shift + B”时将自动编译你的代码。

接下来,打开launch.json文件并输入以下内容:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/<your_executable_name>",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [
                {
                    "name": "DYLD_LIBRARY_PATH",
                    "value": "<path_to_your_opencv_lib_folder>"
                }
            ],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}

environment部分中,将<path_to_your_opencv_lib_folder>替换为你的OpenCV库的路径。

最后,按下“F5”运行你的代码。

img

mac用visual studio code配置opencv
现成得,重新配置

应该是监测到VS Code无法找到OpenCV库,或者它无法链接到这个库。需要确保VS Code能够找到这个库。在c_cpp_properties.json文件中,需要确保"includePath"中包含了OpenCV的头文件路径。这个路径应该在Anaconda的库路径中。
或者尝试直接安装VS Code的C++扩展,而不是使用Anaconda。这样,VS Code将会直接管理C++环境和库,而不是依赖于Anaconda。

版本不兼容

可能是版本不兼容