在 Bazel 构建过程中,当出现“Bazel target not declared in package”错误时,这意味着在 BUILD 文件中尝试使用未在当前包中声明的目标。
例如,如果在 src 目录中有一个名为 hello_world 的目录,并且想要在 BUILD 文件中使用该目录的生成代码,则必须在 BUILD 文件中声明该目标:
cc_binary(
name = "hello_world",
srcs = ["hello_world.cc"],
deps = [...],
)
如果不在 BUILD 文件中显式进行声明,则在编译过程中会引发“Bazel target not declared in package”错误。
所以,要解决这个问题,需要在对应的 BUILD 文件中声明与使用的目标,确保它们都在同一包中。