You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04编译MediaPipe遇OpenCV头文件缺失问题求助

Ubuntu 22.04下Bazel编译MediaPipe报错找不到OpenCV头文件

操作步骤

git clone https://github.com/google/mediapipe.git
cd mediapipe
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/holistic_tracking:holistic_tracking_cpu

报错信息

In file included from ./mediapipe/util/annotation_renderer.h:20,
                 from mediapipe/util/annotation_renderer.cc:15:
./mediapipe/framework/port/opencv_core_inc.h:18:10: fatal error: opencv2/core/version.hpp: No such file or directory
   18 | #include <opencv2/core/version.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Target //mediapipe/examples/desktop/holistic_tracking:holistic_tracking_cpu failed to build
INFO: Elapsed time: 1.284s, Critical Path: 0.88s
INFO: 110 processes: 101 internal, 9 linux-sandbox.
FAILED: Build did NOT complete successfully

已通过CMake源码编译OpenCV,头文件路径为/usr/local/include/opencv4/opencv2,手动修改WORKSPACE和BUILD.bazel后仍无法解决。


解决方案

1. 替换WORKSPACE中的OpenCV依赖

打开mediapipe根目录的WORKSPACE文件,注释或删除所有远程OpenCV依赖条目(如http_archive或new_http_archive定义的opencv相关内容),添加本地OpenCV仓库配置:

new_local_repository(
    name = "opencv",
    path = "/usr/local",
    build_file_content = """
cc_library(
    name = "opencv",
    srcs = glob([
        "lib/libopencv_core.so",
        "lib/libopencv_imgproc.so",
        "lib/libopencv_highgui.so",
        "lib/libopencv_videoio.so",
        "lib/libopencv_imgcodecs.so",
        # 按需添加你编译OpenCV时包含的其他.so文件
    ]),
    hdrs = glob([
        "include/opencv4/opencv2/**/*.hpp",
        "include/opencv4/opencv2/**/*.h",
    ]),
    includes = ["include/opencv4"],
    visibility = ["//visibility:public"],
    linkstatic = False,
)
""",
)

2. 调整端口层的OpenCV引用

打开mediapipe/framework/port/BUILD文件,找到opencv_core_inc规则,修改为:

cc_library(
    name = "opencv_core_inc",
    hdrs = ["opencv_core_inc.h"],
    includes = ["include/opencv4"],
    deps = ["@opencv//:opencv"],
    visibility = ["//visibility:public"],
)

3. 重新执行编译

在mediapipe根目录运行:

bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/holistic_tracking:holistic_tracking_cpu

若仍有问题,可在编译命令中显式补充头文件路径:

bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --copt=-I/usr/local/include/opencv4 mediapipe/examples/desktop/holistic_tracking:holistic_tracking_cpu

内容的提问来源于stack exchange,提问作者Elias Tommeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:22:52