可以在BUILD文件中使用“//:”语法来指向另一个包的源文件,并将其导入当前包。例如,假设存在一个名为“lib”的包,其中有一个名为“util”的源文件,现在需要在名为“app”的包中使用“util”文件。可以在“app”的BUILD文件中添加如下代码:
load("@lib//:util.bzl", "util_func")
# 定义app的库
cc_library(
name = "app_lib",
srcs = ["app.cc"],
deps = [
"@com_google_absl//:strings",
":some_other_dependency",
"//lib:lib_lib",
],
visibility = ["//visibility:public"],
)
# 使用从lib导入的util工具函数
cc_library(
name = "app_util",
srcs = ["util.cc"],
deps = [
"@com_google_absl//:strings",
":some_other_dependency",
"//lib:lib_lib",
],
visibility = ["//visibility:public"],
)
在这个例子中,“util.cc”文件是从“lib”包中导入的。使用“load”函数指向其中的“util.bzl”文件,并定义了“util_func”函数。在“app”的BUILD文件中,使用“//:”语法将“util_func”函数导入到“app_util”库中的“util.cc”文件中,使用它来实现“app_util”库的构建。
注意: