bazel 学习笔记

bazel 学习笔记

bazel重要概念

  1. 工作区(WORKSPACE):工作区包含目录和代码组织,管理了你所有的代码,包括依赖。
  2. 代码库(repository):所有代码,包括主库和依赖的第三方库。常见的第三方库管理有:
    local_repository
    git_repository
    http_archive
  3. 包(package):是一系列相关代码的组合,比如函数的头文件,实现文件和第三方库。
  4. 目标对象(target):与包相对应的是目标对象,目标对象就是包对外提供的实体,比如静态库或者二进制。
    bazel中的命令如bazel build和bazel test都是要指定目标对象的。

bazel目录组织

WORKSPACE
bazel-{project_name}
bazel-bin
bazel-out
bazel-testlogs
BUILD
|-BUILD
|–BUILD
在顶级根目录必须要有WORKSPACE文件,管理了主库的第三方库依赖,
所有的目标对象都要有对应的BUILD文件
所有的代码包括依赖的第三方库都在bazel-{project_name}/external下
生成的所有目标对象都在bazel-bin下
生成的中间文件都在bazel-out下
生成的测试日志都在bazel-testlogs,通过bazel test触发

bazel使用方法

在cc_binary中定义可执行程序的编译规则;
在cc_library中定义库的编译规则(即.o文件)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部