Mac m1上用vscode安装opencv

安装python

mac有自带的,主要是用python3

安装opencv

        一种办法是通过homebrew来安装,安装命令 brew install opencv@3(如果没有“@3”,就会安装opencv4,opencv4没有调试成功,最后会出现symbol not found的动态库bug

ImportError: dlopen(/opt/homebrew/Cellar/opencv/4.5.5/lib/python3.9/site-packages/cv2/python-3.9/cv2.cpython-39-darwin.so, 0x0002):

Symbol not found: __ZN2cv3dnn14dnn4_v202112203Net10getLayerIdERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE

  Referenced from: /opt/homebrew/Cellar/opencv/4.5.5/lib/python3.9/site-packages/cv2/python-3.9/cv2.cpython-39-darwin.so

  Expected in: /usr/local/lib/libopencv_dnn.4.5.5.dylib

)

        一种办法上通过cmake来对源码进行编译。cmake编译有两种,一种是brew安装cmake,用cmake命令进行编译,(这种办法安装后,opencv的库在/usr/local/lib中,头文件在/usr/local/include中,不便于寻找)。一种是cmake程序编译源码。(这种办法和brew都是安装到了一个文件夹中,brew是安装在homebrew的安装文件夹中,cmake程序是自定义)

安装opencv后,在终端输入命令

        python3

        import cv2

没有提示则表示opencv安装正确

vscode调试

调试中最棘手的是#include<opencv2/opencv.hpp> 出现波浪线,提示opencv.hpp unfound的错误

        解决办法:在/usr/local/include 建立opencv2的软链接

ps:网上说的在vscode的c_cpp_properties中的includepath不管用,(具体原因大概是vscode的includepath并不影响debug,只是匹配有用--有待验证)

错误2:#include<opencv2/opencv.hpp>出现#include错误

        解决办法:在c_cpp_properties中正确设置compile path。[一般是/usr/bin/clang++]

错误3:Undefined symbols for architecture arm64:

        解决办法:tasks.json的args最后添加"`pkg-config --cflags --libs opencv`"[这一步主要是链接动态库,macos不会自动链接动态库]

错误4:有可能回遇到c++版本要求c++11的情况(一般不会有这个问题)

        解决办法:task.json的args添加"--std=c++11",

完成之后的配置(一般只需要在tasks.json更改)

tasks.json

 c_cpp_properties.json

launch.json

 

本篇主要是记录,主要是讲一下大致思路和最棘手的一些问题,不详细的地方请见谅

homebrew在m1的具体安装流程自行百度。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值