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

Bazel构建Drake_last_sha_with_original_matlab版本Atlas出现编译错误

问题根因

报错核心是Bazel版本与该Drake历史版本不兼容:

  • last_sha_with_original_matlab是Drake的早期历史版本,仅适配3.x系列Bazel。Bazel 4.0及以上版本移除了attr.label的single_file参数,替换为allow_single_file,直接触发了代码语法错误。
  • 开头的rc文件警告是因为高版本Bazel不再读取非标准命名的bazel.rc配置文件,仅识别.bazelrc后缀的配置。
解决步骤
  • 卸载当前系统安装的高版本Bazel
    如果是apt安装的执行:
    sudo apt remove -y bazel
    如果是手动二进制安装的,直接删除对应的Bazel可执行文件即可。
  • 安装适配的Bazel 3.7.2版本(该版本是该Drake版本官方验证的兼容版本)
    下载对应版本的Linux x86_64安装脚本后,执行:
    chmod +x bazel-3.7.2-installer-linux-x86_64.sh
    sudo ./bazel-3.7.2-installer-linux-x86_64.sh
    
    安装完成后执行bazel --version,确认输出为bazel 3.7.2即可。
  • 处理rc文件警告
    进入Drake项目根目录(包含WORKSPACE文件的目录),执行命令导入旧配置:
    echo "import tools/bazel.rc" > .bazelrc
  • 正确执行构建命令
    你之前的执行路径在examples/Atlas子目录下,构建:install需要切换到项目根目录:
    cd ~/git/drake2/drake-last_sha_with_original_matlab/drake
    bazel build :install
    
可选临时方案(不推荐)

如果暂时不想降级Bazel,可以直接修改报错的tools/third_party/kythe/tools/build_rules/config/pkg_config.bzl文件,将所有single_file = True参数替换为allow_single_file = True即可解决当前报错,但后续可能触发其他版本兼容问题,优先选择降级Bazel的方案。

内容的提问来源于stack exchange,提问作者Dmitriy Ogureckiy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:06:04