首页 文章

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

提问于
浏览
0

Bazel的文档cc_binary rule说:

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

我如何"explicitly request"这个剥离的二进制文件构建?我需要在 BUILD 文件中的 cc_binary 声明中添加一些内容吗?我无法从文档(或Bazel源代码)中找到它 .

1 回答

  • 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) > $@"
    )
    

相关问题