Bazel基本总结一

江苏白癜风医院 http://m.39.net/pf/a_4326384.html

#出发,永远是最有意义的事,去做就是了。

··bazelbuild:基本概念

Bazel的编译是基于工作区(workspace)的概念。工作区是一个存放了所有源代码和Bazel编译输出文件的目录,也就是整个项目的根目录。同时它也包含一些Bazel认识的文件:

1.WORKSPACE文件,用于指定当前文件夹就是一个Bazel的工作区。所以WORKSPACE文件总是存在于项目的根目录下。

2.一个或多个BUILD文件,用于告诉Bazel怎么构建项目的不同部分。(如果工作区中的一个目录包含BUILD文件,那么它就是一个package。)

那么要指定一个目录为Bazel的工作区,就只要在该目录下创建一个空的WORKSPACE文件即可。

当Bazel编译项目时,所有的输入和依赖项都必须在同一个工作区。属于不同工作区的文件,除非linked否则彼此独立。

···Bazel框图

WORKSPACE包含多个Package,每个Package又包含多个Target;Target又包含File、Rule、PackageGroup三种类型。

在bazel中所有代码都在当前工程,每个工程都是一个workspace。每个workspace有多个BUILD文件,BUILD内有多个targets。

···BUILD文件

BUILD文件包含多种类型指令,每条编译指令被称为target,它指向一些列的源文件和依赖,当然也可指向别的target。

#·内置命令cc_binary#·从hello-world.cc源文件构建一个可执行的二进制文件。#该指令中name属性是强制的,但有些属性则是可选择的。#srcs代表源文件,hdrs代表头文件。cc_binary(name="hello-world",srcs=["hello-world.cc"],)#·内置命令cc_librarycc_library(name="hello-greet",srcs=["hello-greet.cc"],hdrs=["hello-greet.h"],)

贴Bazel官方编译例子地址



转载请注明:http://www.sonphie.com/jbzl/14404.html

  • 上一篇文章:
  • 下一篇文章:
  • 网站简介| 发布优势| 服务条款| 隐私保护| 广告合作| 网站地图| 版权申明

    当前时间: