编译MediaPipe 0.8.5后找不到二进制文件及构建报错求助
MediaPipe 0.8.5编译问题解决(Colab Ubuntu 20.04.6 LTS)
问题1:bazel build成功但bazel-bin目录为空,二进制文件位置?
你执行的构建命令:
!git clone https://github.com/google/mediapipe.git %cd mediapipe !git checkout tags/v0.8.5 !bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1
原因
bazel build未指定具体编译目标时,Bazel仅完成环境配置和依赖检查,不会生成任何二进制文件,因此bazel-bin目录为空。
解决方法
必须明确指定要编译的MediaPipe目标(比如示例程序),编译成功后二进制文件会生成在bazel-bin对应路径下。例如编译人脸检测CPU版本:
!bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 //mediapipe/examples/desktop/face_detection:face_detection_cpu
成功后,二进制文件路径为:bazel-bin/mediapipe/examples/desktop/face_detection/face_detection_cpu
问题2:rules_cc构建报错修复
报错关键信息
Prefix "rules_cc-master" was given, but not found in the archive. Here are possible prefixes for this archive: "rules_cc-main"
原因
MediaPipe 0.8.5的WORKSPACE配置中,拉取rules_cc时使用了GitHub旧默认分支名master,但当前rules_cc仓库默认分支已改为main,导致解压时无法匹配指定前缀。
解决方法
修改MediaPipe目录下的WORKSPACE文件,将rules_cc的strip_prefix从rules_cc-master替换为rules_cc-main,在Colab中可直接执行sed命令完成修改:
!sed -i 's/rules_cc-master/rules_cc-main/g' WORKSPACE
修改完成后,重新执行之前的目标构建命令即可正常编译。
内容的提问来源于stack exchange,提问作者JJJohn
相关产品推荐
相关产品推荐

