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

遵循Bazel C++工具链教程时为何提示rule等全局符号未定义

问题原因

你使用的Bazel 4.1.0属于旧版本,cc_common、rule、CcToolchainConfigInfo这三个符号并非默认全局可用,必须显式加载对应定义才能使用。

解决步骤

  1. 首先在你编写工具链配置的.bzl文件最顶部添加如下加载语句:
# 加载C++工具链相关符号
load("@bazel_tools//tools/cpp:cc_toolchain_config_lib.bzl", "CcToolchainConfigInfo", "cc_common")
# 加载rule定义
load("@bazel_skylib//lib:rules.bzl", "rule")
  1. 如果构建时提示找不到@bazel_skylib依赖,需要在项目的WORKSPACE文件中添加如下配置引入依赖:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "bazel_skylib",
    sha256 = "c6966ec828da198c5d9adbaa94c05e3a1c7f21bd0a3f0244b6934e43bcafeda6",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz",
        "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz",
    ],
)

load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")

bazel_skylib_workspace()
  1. 重新执行构建命令即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:09:01