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 加入系统搜素路径试一下。