bazel笔记:
bazel的编译是基于工作区,也就是项目的根目录
1. workspace文件:制定当前文件夹就是一个bazel工作区。
2.一个或多个build文件,如果工作区中的一个目录包含build文件,那么他就是一个package. 因此,要制定一个目录为bazel的工作区,就只要在该目录下创建一个空的workspace即可。
//: 该符号标识根目录下的文件
target:
cc_binary (name)
cc_libary
cc_test
可视化:
bazel query --nohost_deps --noimplicit_deps 'deps(//main:hello-world)' --output graph
bazel有两个关键元素,一个是package,另一个是target package是可独立编译的project包,由workspace文件(可为空)标识; target是BUILD文件中的关键元素,也就是编译的目标,目标可以是二进制文件(cc_binary), 可以是libary(cc_libary)
另外的选项:
visiblity: ["//visibility:public"],['//visibility:private'](私有),['//some/package:__pkg__'](注意冒号) ex: package(default_visibility = ["//visibility:public"])
转载于:https://www.jianshu.com/p/96b9ddb25d0f