0

我正在尝试将 mediapipe 用于大学项目并已安装它,甚至成功运行了 Hello World!在 C++ 示例应用程序中,但是当我尝试构建 C++ 命令行示例时,它给了我错误。

我跑了这个:

bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu

我得到的结果是这样的:

调试:/private/var/tmp/_bazel_kanzashaikh/c191ae13e9137350b50f6a19ce94bf21/external/rules_foreign_cc/workspace_definitions.bzl:15:10:警告:此分支已弃用,不再接收更新。请更新到 main 或选择特定的提交以固定在您的工作区中。信息:构建选项 --compilation_mode 已更改,丢弃分析缓存。错误:获取存储库时出错:java.io.IOException:存储库的路径是“/usr/local/opt/opencv@3”(绝对:“/usr/local/opt/opencv@3”)但此目录不存在. 错误:/Users/kanzashaikh/development/mediapipe/third_party/BUILD:178:6: //third_party:opencv_binary 依赖于 @macos_opencv//:opencv 在存储库@macos_opencv 中无法获取。没有这样的包'@macos_opencv//':存储库的路径是“/usr/local/opt/opencv@3” (绝对:“/usr/local/opt/opencv@3”)但该目录不存在。错误:目标'//mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu'的分析失败;构建中止:分析失败信息:经过时间:0.194 秒信息:0 个进程。失败:构建未成功完成(加载了 0 个包,配置了 237 个目标)

我该如何解决?

4

2 回答 2

0

在构建桌面示例之前,您应该设置opencv. 也适用于您应该设置的 android 示例android sdk and ndk。有一个用于设置 opencv 的内置脚本,您可以执行它。用于设置 opencv:

bash setup_opencv.sh

对于 android sdk 和 ndk:

bash setup_android_sdk_and_ndk.sh
于 2021-02-26T10:13:31.020 回答
0

我假设您正在运行 M1 机器,因为 Homebrew 现在正在将 Intel 二进制文件安装/usr/local/opt/homebrew.

在您的情况下,在构建时,bazel 正在寻找opencv@3包 at/usr/local/opt/opencv@3并立即抛出错误,因为包位于/opt/homebrew/opt/opencv@3.

因此,您有两个选择:

  1. 从您的 bazel 项目中打开 WORKSPACE 文件并相应地修改每个包的路径
  2. 通过运行创建一个指向/opt/homebrew/optin的符号链接:/usr/localsudo ln -s /opt/homebrew/opt opt
于 2022-02-03T21:47:22.117 回答