windows mediapipe c++ vscode 单步调试

之前搞人体没有少用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 了,后续如果有时间会继续调试其他功能记录在优快云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值