bazel:你如何“请求”cc_binary构建二进制文件的剥离版本?

时间:2017-06-16 18:41:24

标签: bazel

Bazel的cc_binary rule文档说:

  

隐含输出目标

     
    

<name>.stripped(仅在明确请求时构建):二进制文件的剥离版本。在二进制文件上运行strip -g以删除调试符号。可以使用--stripopt=-foo在命令行上提供其他条带选项。仅在明确请求时才构建此输出。

  

我如何“明确请求”这个剥离的二进制文件被构建?我需要在cc_binary文件的BUILD声明中添加一些内容吗?我无法从文档(或Bazel来源)中找到它。

1 个答案:

答案 0 :(得分:1)

好吧,我想我是怎么想的。

如果我的BUILD文件包含此内容:

cc_binary(
  name = "mytool",
  srcs = ["mytool.c"]
)

...然后从命令行我可以用这个构建剥离的二进制文件:

bazel build //:mytool.stripped

或更常见的情况,如果我有另一个需要剥离的二进制作为其输入之一的BUILD规则,我可以通过相同的标签:mytool.stripped来引用它。这是一个奇怪的人为例子:

genrule(
  name = "mygenrule",
  outs = ["genrule.out"],
  srcs = [":tool1.stripped"],
  # run tool1.stripped, sends its output to genrule.out:
  cmd = "$(SRCS) > $@"
)