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

Bazel+C++项目:如何为run命令指定执行工作目录

问题根源

bazel run默认执行时的工作目录是目标对应的runfiles目录,而非你执行命令的工作区根目录,所以依赖相对路径寻址的程序会找不到对应资源。

解决方案

直接在bazel run命令中添加--run_under="cd $PWD && "参数,即可将运行工作目录切换为你执行命令时的当前目录,适配你的Mediapipe场景的命令如下:

bazel run -c dbg --define MEDIAPIPE_DISABLE_GPU=1 --run_under="cd $PWD && " mediapipe/examples/desktop/iris_tracking:iris_tracking_cpu -- --calculator_graph_config_file=mediapipe/graphs/iris_tracking/iris_tracking_cpu.pbtxt

注意--run_under是Bazel原生参数,需要放在目标路径之前,不要放到参数分隔符--之后。

这个方案不需要修改任何项目构建配置,直接调整运行参数即可生效,完全满足Mediapipe引擎对相对路径和当前工作目录的依赖要求。

内容的提问来源于stack exchange,提问作者Stepan Dyatkovskiy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:36:02