Bazel C++ 规则项目教程

Bazel C++ 规则项目教程

rules_ccC++ Rules for Bazel项目地址:https://gitcode.com/gh_mirrors/ru/rules_cc

项目目录结构及介绍

rules_cc/
├── LICENSE
├── README.md
├── WORKSPACE
├── BUILD
├── cc/
│   ├── BUILD
│   ├── cc.bzl
│   ├── defs.bzl
│   ├── toolchain.bzl
│   └── ...
├── examples/
│   ├── BUILD
│   ├── main.cc
│   └── ...
└── ...
  • LICENSE: 项目的许可证文件,采用 Apache-2.0 许可证。
  • README.md: 项目介绍和使用说明。
  • WORKSPACE: 用于定义外部依赖和仓库。
  • BUILD: 包含项目的构建规则。
  • cc/: 包含 C++ 规则的定义和配置。
    • cc.bzl: 定义 C++ 规则的主要文件。
    • defs.bzl: 包含 C++ 规则的具体实现。
    • toolchain.bzl: 定义 C++ 工具链。
  • examples/: 包含示例代码和构建文件。

项目的启动文件介绍

项目的启动文件是 WORKSPACE 文件,它用于定义项目的外部依赖和仓库。以下是一个示例:

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

http_archive(
    name = "rules_cc",
    urls = ["https://github.com/bazelbuild/rules_cc/archive/refs/tags/<VERSION>.tar.gz"],
    sha256 = "",
)

在这个文件中,我们使用 http_archive 来加载 rules_cc 仓库。

项目的配置文件介绍

项目的配置文件主要包括 BUILD 文件和 cc/defs.bzl 文件。

BUILD 文件

BUILD 文件定义了项目的构建规则,以下是一个示例:

load("@rules_cc//cc:defs.bzl", "cc_library")

cc_library(
    name = "main",
    srcs = ["main.cc"],
    hdrs = ["main.h"],
)

在这个文件中,我们使用 cc_library 规则来定义一个 C++ 库。

cc/defs.bzl 文件

cc/defs.bzl 文件包含了 C++ 规则的具体实现,以下是一个示例:

def cc_library(name, srcs = [], hdrs = [], deps = [], **kwargs):
    native.cc_library(
        name = name,
        srcs = srcs,
        hdrs = hdrs,
        deps = deps,
        **kwargs
    )

在这个文件中,我们定义了 cc_library 规则的具体实现。

以上是 Bazel C++ 规则项目的教程,包含了项目的目录结构、启动文件和配置文件的介绍。希望对你有所帮助!

rules_ccC++ Rules for Bazel项目地址:https://gitcode.com/gh_mirrors/ru/rules_cc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

费好曦Lucia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值