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

Bazel构建C++二进制时报@platforms//os:wasi目标不存在错误

故障根因

报错no such target '@platforms//os:wasi'是版本不匹配导致:你拉取的RE2提交(commit 5723bb8)已经加入WASI平台适配逻辑,依赖@platforms//os:wasi构建目标;但当前Bazel环境拉取的platforms规则集版本过旧,os包的BUILD文件内没有声明wasi目标,直接导致构建分析阶段中断。

修复方案

选任意一种方案即可:

  • 方案1:在WORKSPACE文件中优先声明新版platforms依赖,覆盖Bazel自带的旧版本。把下面的规则放在RE2拉取规则之前:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
    name = "platforms",
    sha256 = "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74",
    # 指向本地存放的platforms 0.0.8版本压缩包即可,无需公网拉取
    urls = ["file:///home/yourname/bazel_deps/platforms-0.0.8.tar.gz"],
)

只要platforms版本≥0.0.7就已经内置wasi目标,满足版本要求即可,不需要强制用特定来源的包。

  • 方案2:更换RE2依赖版本,选用2023年年中之前发布的旧稳定版提交,这类版本还没加入WASI适配逻辑,不需要高版本platforms支持,不用额外调整其他依赖。
  • 方案3:如果你本地装的Bazel版本≥6.2.0,先执行bazel clean --expunge清空本地缓存的旧外部依赖,再重新跑构建命令,Bazel会自动拉取版本匹配的platforms包。
额外避坑

你当前WORKSPACE里给RE2设置的仓库名是大写RE2,不符合Bazel仓库名全小写的惯例,后续引用目标时很容易出现大小写匹配错误,建议改成name = "re2",后续依赖引用统一用@re2//:re2格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:09:16