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

编译libcoral时出现@bazel_tools//platforms包不存在的Bazel报错求助

问题分析与解决:Bazel构建libcoral时@bazel_tools//platforms包缺失报错

报错核心原因

这个问题本质是Bazel版本与libcoral的依赖规则不兼容:

  • 旧版Bazel(4.x以下)将平台相关规则内置在@bazel_tools仓库的platforms目录下;
  • 新版Bazel(4.x及以上)把这些规则拆分到了独立的@platforms外部仓库,而libcoral的构建脚本仍在引用旧路径,或者你自行编译的Bazel版本与libcoral预期版本不匹配。
    另外,源码编译Bazel时若参数不当,可能导致@bazel_tools仓库缺失platforms目录的BUILD文件,也会触发该报错。

具体解决方法

1. 匹配libcoral指定的Bazel版本

  • 查看libcoral项目根目录的.bazelversion文件或官方文档,确认它要求的Bazel版本;
  • 严格按照对应版本的源码编译指南重新编译Bazel,确保内置仓库组件完整。

2. 适配高版本Bazel(手动添加依赖)

如果必须使用高版本Bazel,修改libcoral的WORKSPACE文件,添加独立的platforms仓库引用:

http_archive(
    name = "platforms",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.6/platforms-0.0.6.tar.gz",
        "https://github.com/bazelbuild/platforms/releases/download/0.0.6/platforms-0.0.6.tar.gz",
    ],
    sha256 = "379113459b0feaf6bfbb584a91874c065078aa673222846ac765f86661c27407",
)

随后将所有引用@bazel_tools//platforms的路径替换为@platforms//(比如BUILD文件或.bazelrc中的相关配置)。

3. 检查Bazel编译参数

源码编译Bazel时,避免使用裁剪内置仓库的参数(如--noembed_label),使用默认参数重新编译,确保@bazel_tools仓库的完整性。

4. 清理缓存后重试

执行以下命令清空Bazel缓存,再重新构建:

bazel clean --expunge
make CPU=aarch64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:13:08