如何找到 cc 文件的构建目标位置

How can I find the build-dest-position of a cc file

例如common_shape_fns_test.cc,我搜索这个字符串并在BUILD文件中找到它,然后我搜索tf_cc_tests。终于找不到提示了

我想直接运行调试,所以需要找位置

您可以使用 bazel query。 IE,使用来自 Bazel Query howto

recipe
fullname=$(bazel query tensorflow/core/framework/common_shape_fns_test.cc)
bazel query "attr('srcs', $fullname, ${fullname//:*/}:*)"
>>

//tensorflow/core:framework_common_shape_fns_test
//tensorflow/core:all_files

如果您要查找构建的二进制 Bazel 的位置,它将打印在 Bazel 的输出中,例如,

$ bazel build //foo/bar:baz
...
Target //foo/bar:baz up-to-date:
  bazel-bin/foo/bar/baz

bazel-bin/foo/bar/baz 是构建输出。

不过,一般来说,只要知道生成输出文件的 BUILD 文件,就总能找到输出文件。如果 BUILD 文件是 tensorflow/core/BUILD,那么输出将在 bazel-bin/tensorflow/core 下(或者,如果它是一个 genrule,bazel-genfiles/tensorflow/core)。