之前搞人体没有少用Mediapipe这个库,但都是以python的方式调用,有许多源码原理不清楚,最近打算看看源码,但是几乎没有调试Mediapipe的教程,所以自己调通后记录下
首先安装各种所需环境就参考这位大佬的文章,非常详细,本文就不过多赘述了,本人亲测可行
Mediapipe - Windows10 编译Mediapipe C++版本保姆级教程-优快云博客
这是参考上述文章后,自己的效果

接下来进入重点部分
第一次进入项目请以管理员身份打开终端,cd到 github 克隆下来的 mediapipe-master 的目录,然后运行 code . 打开 vscode
在这个地方点击输入后 > 选择

把打开的 UI 删掉,这时候会在项目根目录下出现 .vscode 目录,目录中含有 c_cpp_properties.json 文件(这个文件主要是配置C++编译器路径)
这个文件中配置如下:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${vcpkgRoot}/x64-windows/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"],
"windowsSdkVersion": "10.0.22621.0",
"cStandard": "c17",
"cppStandard": "c++17",
"compilerPath": "D:/visual_studio/VC/Tools/MSVC/14.39.33519/bin/Hostx86/x86/cl.exe",
"intelliSenseMode": "windows-msvc-x64"
}
],
"version": 4
}
其中 compilerPath 替换为自己的 visual studio 的安装路径,进去确保后面的 cl.exe 存在
windowsSdkVersion替换为自己的版本,最后一个点之后置 0 即可
windowsSdkVersion在控制面板里的卸载程序中,找到如下这一列

做完上面的之后,继续上方点击输入后 > 选择

之后会在.vscode 中出现 tasks.json
这个文件中配置如下:
{
"version": "2.0.0",
"tasks": [
{
"label": "Build",
"type": "shell",
"command": "bazel build -c dbg --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH=\"D:\\anaconda\\python.exe\" mediapipe/examples/desktop/hello_world"
},
{
"label": "SetEnv",
"type": "shell",
"command": "set GLOG_logtostderr=1"
},
{
"label": "Bazel Build (Run Opt)",
"dependsOn": ["Build", "SetEnv"],
"dependsOrder": "sequence"
}
]
}
其中 label 为 Build 是编译代码部分
SetEnv 是为了运行可执行代码而进行的环境设置
之后进入vscode左侧这个地方后点击创建launch,json文件

在launch.json中配置如下:
{
"version": "0.2.0",
"configurations": [
{
"name": "(windows) Bazel Launch Run Opt",
"preLaunchTask": "Bazel Build (Run Opt)",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/bazel-bin/mediapipe/examples/desktop/hello_world/hello_world.exe",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}/bazel-bin/mediapipe/examples/desktop/hello_world/hello_world.exe.runfiles",
"environment": [],
"console": "externalTerminal"
}
]
}
配置后,进入 mediapipe/examples/desktop/hello_world 目录
打开 helloword.cc
右上角点击

之后的弹窗选择刚刚配置的

之后等待进入调试页面,等待程序运行,之后程序就在停在

点击右上角弹出的
![]()
即可单步执行代码,我自己的效果如下,在 return 0 之前效果:

到此单步调试完成。
值得记录的是,每次都以管理员的形式进入很麻烦
这里提供一种点击进入的方法
点击vscode文件,将工作区另存为...

将.code-workspace保存在项目根目录下即可
之后再根目录下新建 vscode.txt
其中内容为:
call "D:\visual_studio_community\VC\Auxiliary\Build\vcvars64.bat"
code .\mediapipe_vscode.code-workspace
exit
记得把 call 之后的路径修改为自己的
然后将 vscode.txt 文件名后缀改为 bat (即文件名为:vscode.bat)
这样再次打开项目直接在目录中点击该 vscode.bat 即可
要不直接进入 vscode 运行 msvc 的项目会报错
cl.exe build and debug is only usable when VS Code isrun from the Developer Command Prompt for VS.

到此,就能够调试 mediapipe 了,后续如果有时间会继续调试其他功能记录在优快云
2409

被折叠的 条评论
为什么被折叠?



