ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

MediaPipe 怎么在 macOS 上用 Homebrew 安装 OpenCV 3 并处理 glog 依赖冲突?

2026/9/12 1:54:07 拓冰建站 浏览量
MediaPipe 怎么在 macOS 上用 Homebrew 安装 OpenCV 3 并处理 glog 依赖冲突? MediaPipe 怎么在 macOS 上用 Homebrew 安装 OpenCV 3 并处理 glog 依赖冲突【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe在 macOS 上从零搭建 MediaPipe C 桌面环境时最容易卡住的环节是 OpenCV 的引入文档要求用 Homebrew 安装预编译的 OpenCV 3brew install opencv3并且紧接着要卸载 Homebrew 的 glogbrew uninstall --ignore-dependencies glog否则会遇到一个由 glog 依赖引起的已知问题。本文按 安装文档 的 Installing on macOS 章节给出这条完整路径安装前置工具、用 Homebrew 装 OpenCV 3、处理 glog、运行 Hello World 示例验证整条构建链是否打通。文档建议的 OpenCV 版本范围是 3.x 到 4.1所以选opencv3是符合官方推荐的首选路径。环境准备开始之前需要安装三样东西均为文档明确要求Homebrew包管理器Xcode 及其 Command Line Tools安装命令是xcode-select --installBazelisk文档让读者按 Bazel 官方文档安装仓库本身不提供 Bazel 二进制。然后在 Home 目录下克隆 MediaPipe 仓库并进入根目录$ cd $HOME $ git clone --depth 1 https://gitcode.com/GitHub_Trending/med/mediapipe.git $ cd mediapipe如果习惯用 MediaPipe 官方仓库地址以 安装文档 中给出的克隆命令为准。用 Homebrew 安装 OpenCV 3并卸载 glog安装文档给出的 macOS 主路径Option 1只有两条命令$ brew install opencv3 # There is a known issue caused by the glog dependency. Uninstall glog. $ brew uninstall --ignore-dependencies glog第二条命令是处理 glog 冲突的关键文档原文的注释是「由 glog 依赖引起的一个已知问题卸载 glog」。这里有两个要点--ignore-dependencies会绕过 Homebrew 的依赖保护即使其他已安装的 formula包括刚装好的opencv3声明依赖 glog也会把 glog 从系统里移除。这是文档指定的处理方式执行前确认你理解它的影响范围卸载的是本机 Homebrew 的 glog 包不涉及 MediaPipe 仓库内的任何文件。卸载 glog 不会导致 MediaPipe 缺依赖因为 Bazel 构建用的是仓库自己声明的 glog。可以在 WORKSPACE 中核对MediaPipe 通过http_archive拉取glog-0.6.0源码com_github_glog_glog并单独拉取了 gflags 2.2.2注释写明是 gflags needed by glog。也就是说构建用的 glog 由 Bazel 自行编译Homebrew 里那份才会引发问题。文档同时说明FFmpeg 不需要单独安装会通过 OpenCV 一起装好。可选Apple Silicon 上核对 OpenCV 路径配置默认情况下 MediaPipe 的构建配置直接指向 Homebrew 的标准位置brew install opencv3装完即可使用不需要改任何文件。但如果你的 Homebrew 装在/opt/homebrewApple Silicon 常见情况或安装的版本号与预期不同opencv_macos.BUILD 文件头部的注释给出了核对方法$ brew ls opencv3 | grep version.hpp # 文档示例输出版本号为 3.4.16_10 时的示例 # /opt/homebrew/Cellar/opencv3/3.4.16_10/include/opencv2/core/version.hpp确认输出后需要让两处配置保持一致文件注释明确要求「改一处必须同步改另一处」WORKSPACE 中macos_opencv规则的path改为 Homebrew Cellar 所在目录例如/opt/homebrew/Cellaropencv_macos.BUILD 中的PREFIX改为opencv/version上例即opencv/3.4.16_10。当前仓库的默认值是path /usr/local注释注明如/usr/local/Cellar配合PREFIX opt/opencv3即走 Homebrew 的/usr/local/opt/opencv3链接。macos_ffmpeg规则则固定在/usr/local/opt/ffmpeg。安装 Python 3 与 six 库文档的 macOS 流程在跑示例前还要求确认 Python 3 和six库可用$ brew install python $ sudo ln -s -f /usr/local/bin/python3.7 /usr/local/bin/python $ python --version Python 3.7.4 $ pip3 install --user six注意sudo ln -s -f这条命令需要管理员权限且会覆盖/usr/local/bin/python这个软链接执行前确认你的系统允许这样修改。Python 3.7.4是文档给出的示例输出不是必须精确匹配的固定值你的 Python 版本以实际为准。运行 Hello World 验证安装是否真正生效用文档指定的 Hello World 示例验证$ export GLOG_logtostderr1 # Need bazel flag MEDIAPIPE_DISABLE_GPU1 as desktop GPU is currently not supported $ bazel run --define MEDIAPIPE_DISABLE_GPU1 \ mediapipe/examples/desktop/hello_world:hello_world两点说明--define MEDIAPIPE_DISABLE_GPU1是文档明确要求的标志注释写明 macOS 桌面 GPU 目前不受支持必须禁用 GPU示例输出是十行Hello World!安装文档 与 Hello World 文档 均以此作为成功判据文档示例为十行连续输出# Hello World! # Hello World! # ...共 10 行看到这个输出说明 Homebrew 的 OpenCV 3、glog 的处理和 Bazel 构建链已经全部打通。构建失败时先查 OpenCV 配置如果bazel run在链接阶段报出一连串 OpenCV 符号未定义的错排错文档 给出的是这样一类错误信息error: undefined reference to cv::String::deallocate() error: undefined reference to cv::String::allocate(unsigned long) error: undefined reference to cv::VideoCapture::VideoCapture(cv::String const) ...文档的结论是这通常说明 OpenCV 没有为 MediaPipe 正确配置需要回到 安装文档 的 Install OpenCV and FFmpeg 一节检查WORKSPACE与opencv_macos.BUILD是否指向了本地实际的 OpenCV 库。对照前文「核对 OpenCV 路径配置」一节逐项检查path与PREFIX是否一致是最常见的修复点。其他类别的构建错误Python 找不到、依赖拉取失败等在同文档对应小节中。限制macOS 桌面 GPU 不受支持构建必须带--define MEDIAPIPE_DISABLE_GPU1这是文档注释中的原样限制文档推荐与 OpenCV 互操作的版本范围是 3.x 到 4.1OpenCV 2.x 当前可用但可能被弃用本文主路径固定使用opencv3文档未详述 glog 已知问题的具体报错形态只提供了卸载命令如果卸载 glog 后构建仍报 glog 相关错误属于文档未覆盖的情形需要以实际报错为准另行处理。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考