mac在 VSCode 中配置 opencv

1. opencv 的安装方法,从官网下载源码进行编译,安装到/usr/local/opencv 位置。

  注意,自己编译的 operncv,在 build 或者 install 时候要把 pkg-config 选项设置为 ON,默认的是 OFF;否则安装的 opencv 里面就没有 pkgconfig 文件夹,具体可以搜相关文章( pkg-config 如果没有 opencv4.pc,则把 opencv 编译 build 文件夹里面的复制过去即可)。

2. vscode 的三个配置文件:launch.json, task.json, c_cpp_properties.json,官网有配置说明。

  主要将 opencv 的 include、lib 等添加到 includepath 中。

在 macos 上使用 vscode 配置 opencv,主要存在 2 个问题,导致 opencv 无法正常运行:

1. 找不到 opencv 的各种头文件,一直报错

2. 头文件解决后,编译程序无法执行,找不到各种库文件 *.dylib

1. 找不到 opencv 的各种头文件,一直报错

  在 Stack Overflow 上找到个解决方案 https://stackoverflow.com/questions/67875334/fatal-error-opencv2-core-hpp-no-such-file-or-directory-ubuntu-and-visual-studi

  在 task.json 中的 args 参数里添加如下四行,即可解决头文件 not found 问题。

"`pkg-config",

"--cflags",

"--libs",

"opencv4`"

 注意开头、结尾处有符号 ` `,完整的 task.json 例子如下,(此处是g++,我使用的 clang/clang++ 编译程序也没问题)

    {
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",
                "`pkg-config",
                "--cflags",
                "--libs",
                "opencv4`"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "compiler: /usr/bin/g++"
        }
    ]
}

 

2. 编译程序无法执行,找不到各种库文件 *.dylib

在此处找到方法,解决了我的问题 https://stackoverflow.com/questions/13554520/dyld-not-loaded-reason-image-not-found-libopencv-core-2-4-dylib ,其解答如下,

Since other answers are not clear enough;

 Assume your dylib files are located in /usr/local/opt/opencv3/lib

sudo ln -s /usr/local/opt/opencv3/lib/*.dylib   /usr/local/lib

will solve this problem. Be aware that /usr/lib is protected by system in MacOS, thus you should use /usr/local/lib.

操作方法是,在/usr/local/lib 中建立 opencv/lib/*.dylib 的软链接,让编译好的程序在执行时能够找到 *.dylib 文件。

 

PS:因为程序执行时找不到库文件,也可以尝试将 opencv/lib 加入系统搜素路径试一下。

 

posted @ 2022-10-28 09:47  banluxinshou  阅读(1353)  评论(0编辑  收藏  举报