Windows11 环境 编译 mediapipe (已经成功运行结果)
(请先确保当前用户名不包含中文,再进行后续操作)
安装 msys2
安装python
-
下载地址: https://www.msys2.org/
-
安装完成后 ,打开 msys2
-
在打开MSYS 命令行中输入
pacman -Syu -
执行结束后,在命令行中输入
pacman -Su -
执行结束后,在命令行输入
pacman -S git patch unzip
-
安装的python版本是 3.12.0
安装 Visual Studio 2019
打开Visual Studio Installer 安装C++基本的开发环境和WinSDK :

下载 Bazel
-
在 https://github.com/bazelbuild/bazel/tags 找版本 6.5.0 下载
bazel-6.5.0-windows-x86_64.ex -
下载的 bazel-6.5.0-windows-x86_64.exe 文件不需要安装,这个是一个命令行工具。 放在目录
D:\Bazel中,并将 bazel-6.5.0-windows-x86_64.exe 改名为 bazel.exe
安装opencv
-
直接下载的opencv 在后续编译过程中会遇到问题,缺少一些API, 还需要编译好的 contrib
-
这里直接用编译好的 opencv库, 这个opencv的版本是 4.8.0 , 将压缩包解压到 D
:\opencv\opencv480
下载mediapipe库
下载地址 https://github.com/google-ai-edge/mediapipe ,选择Tag版本 v0.10.14 ,下载源码或用git clone代码到本地。
配置环境变量
-
在 path中增加msys路径
C:\msys64\usr\bin -
在path中增加bazel路径
D:\Bazel -
在MSYS上设置Bazel变量而不是在cmd.exe中:BAZEL_VS ,BAZEL_VC,BAZEL_VC_FULL_VERSION,BAZEL_WINSDK_FULL_VERSION,
示例:
set BAZEL_VS=D:\Program Files \(x86\)\Microsoft Visual Studio\2019\Community
set BAZEL_VC=D:\Program Files \(x86\)\Microsoft Visual Studio\2019\Community\VC
set BAZEL_VC_FULL_VERSION=14.29.30133
set BAZEL_WINSDK_FULL_VERSION=10.1.19041.5609

4. 增加 BAZEL_SH=C:\msys64\usr\bin\bash.exe
修改mediapipe 的环境配置
-
打开 mediapie/WORKSPACE, 找到 windows_opencv 配置选项 ,修改opencv的真实路径
new_local_repository(
name = "windows_opencv",
build_file = "@//third_party:opencv_windows.BUILD",
path = "D:\\opencv\\opencv480", //替换为你的真实解压路径
)
2. 打开 third_party/opencv_windows.BUILD ,修改opencv的路径为:
licenses(["notice"]) # BSD license
exports_files(["LICENSE"])
OPENCV_VERSION = "480" # 3.4.10
config_setting(
name = "opt_build",
values = {"compilation_mode": "opt"},
)
config_setting(
name = "dbg_build",
values = {"compilation_mode": "dbg"},
)
# The following build rule assumes that the executable "opencv-3.4.10-vc14_vc15.exe"
# is downloaded and the files are extracted to local.
# If you install OpenCV separately, please modify the build rule accordingly.
cc_library(
name = "opencv",
srcs = select({
":opt_build": [
"lib/opencv_world" + OPENCV_VERSION + ".lib",
"bin/opencv_world" + OPENCV_VERSION + ".dll",
],
":dbg_build": [
"lib/opencv_world" + OPENCV_VERSION + "d.lib",
"bin/opencv_world" + OPENCV_VERSION + "d.dll",
],
}),
hdrs = glob(["include/opencv2/**/*.h*"]),
includes = ["include/"],
linkstatic = 1,
visibility = ["//visibility:public"],
尝试编译 Hello World
在 mediapipe的根目录中,打开cmd, 输入
bazel build -c opt --action_env PYTHON_BIN_PATH="C://Python312//python.exe" --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hello_world:hello_world
由于网络问题,可以在mediapipe根目录下的.bazelrc中添加网路代理设置(端口设置根据实际修改)
# For build actions
build --action_env=http_proxy=http://127.0.0.1:7897
build --action_env=https_proxy=http://127.0.0.1:7897
build --action_env=HTTP_PROXY=http://127.0.0.1:7897
build --action_env=HTTPS_PROXY=http://127.0.0.1:7897
# For external repository fetch
common --repo_env=http_proxy=http://127.0.0.1:7897
common --repo_env=https_proxy=http://127.0.0.1:7897
common --repo_env=HTTP_PROXY=http://127.0.0.1:7897
common --repo_env=HTTPS_PROXY=http://127.0.0.1:7897
common --repo_env=no_proxy=localhost,127.0.0.1
common --repo_env=NO_PROXY=localhost,127.0.0.1
尝试编译 holistic_tracking_cpu
在cmd中 输入
bazel build -c opt --action_env PYTHON_BIN_PATH="C://Python312//python.exe" --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/holistic_tracking:holistic_tracking_cpu
如果遇到这种错误:
找到显示的文件 ,删除多余的注释 ,再次编译
编译成功后,在cmd中输入指令:
bazel-bin/mediapipe/examples/desktop/holistic_tracking/holistic_tracking_cpu --calculator_graph_config_file=mediapipe/graphs/holistic_tracking/holistic_tracking_cpu.pbtxt
即可看到对应的结果。
以上是我结合自己编译的过程,所执行操作的记录,尽可能地避免大家去踩坑,不过可能有一些细节没有讲述清楚,所以更详细的过程可以参考这位大佬给出的教程:Mediapipe – Windows10 编译Mediapipe C++版本保姆级教程-StubbornHuang Blog
更多推荐




所有评论(0)