Bazel 教程

Bazel 语法详解

Bazel 的核心是 WORKSPACEBUILD 文件。它们使用 Starlark 语言(一种 Python 方言)编写。以下是 Bazel 语法的详细说明。


1. WORKSPACE 文件

WORKSPACE 文件用于定义工作空间的根目录,并声明外部依赖(如第三方库或工具链)。它是一个全局配置文件。

示例:
workspace(name = "my_project")

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

# 下载一个外部依赖(例如 rules_go)
http_archive(
    name = "io_bazel_rules_go",
    sha256 = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    urls = ["https://github.com/bazelbuild/rules_go/releases/download/v0.30.0/rules_go-v0.30.0.zip"],
)

# 加载外部依赖
load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
go_rules_dependencies()
go_register_toolchains()
关键点:
  • workspace(name = "my_project"):定义工作空间的名称,必须是唯一的。
  • load():用于加载外部规则或工具。
  • http_archive():用于下载外部依赖。

2. BUILD 文件

BUILD 文件用于定义构建目标(如二进制文件、库、测试等)。每个目录可以有一个或多个 BUILD 文件。

示例:
# 定义一个 C++ 二进制文件
cc_binary(
    name = "hello_world",
    srcs = ["main.cc"],
    deps = [":hello_lib"],
)

# 定义一个 C++ 库
cc_library(
    name = "hello_lib",
    srcs = [</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值