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
相关产品推荐
相关产品推荐

