Bazel的可见性存在5中类型的精细化控制方法:
除非由 package 的 default_visibility 指定默认的可见性,否则默认为 //visibility:private 。
例如,在 //polyflow:BUILD 顶级文件中,定义了一个包集合,它表示当前工程下所有的包。
而在任意的一个包中,可引用该包集合,并赋予包的默认可见性。例如, //polyflow/core:BUILD 中,规则 model_id 的可见性对 //polyflow 下的所有包可见,包括它自己所在的包。
一般地,如果将测试与实现放在同一个包中,则测试目标能够引用到被测试目标。例如,目标 //cub/string:string_view 与目标 //cub/string:string_view_test 定义在同一个包中,测试目标可直接引用被测试目标。
如果违背了这个约定,将头文件、实现文件和测试文件分别放在 include 、 src 和 test 目录,这种风格将导致复杂的 Bazel 配置。
能用,如果包含了一个头文件,那么需要将头文件对应的库添基配加到依赖搏腔指中。不过,只需有添加直接依赖的库。假设三明治对应的sandwich.h文件包含了面包对应的bread.h文件,同时bread.h又圆大包含了面粉对应的flour.h文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)