bazel中的cc_library是用于编译C++代码的规则。在Bazel中,有两种类型的cc_library:cc_library和cc_library_static。它们的差异在于,cc_library用于创建一个共享目标库(shared object library),而cc_library_static用于创建一个静态目标库(static library)。下面给出一个基本示例:
cc_library:
cc_library(
name = "my_library",
srcs = ["my_library.cc"],
hdrs = ["my_library.h"],
visibility = ["//visibility:public"],
)
cc_library_static:
cc_library_static(
name = "my_static_library",
srcs = ["my_library.cc"],
hdrs = ["my_library.h"],
visibility = ["//visibility:public"],
)
在此示例中,cc_library用于创建一个名为my_library的共享库,而cc_library_static用于创建一个名为my_static_library的静态库。在Bazel中,库必须明确地列出其公共API。在上述示例中,可见性规则指定公共API的范围。
上一篇:Bazel操作图中间人助记动作