首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建修改由cc_binary生成的可执行文件的Bazel通用规则

创建修改由cc_binary生成的可执行文件的Bazel通用规则
EN

Stack Overflow用户
提问于 2021-05-10 02:51:21
回答 1查看 136关注 0票数 0

假设我有一个这样的cc_binary()规则:

代码语言:javascript
复制
cc_binary(
    name = "App",
    srcs = [
        "app.cpp",
    ],
)

这将在bazel-bin的某个地方生成App.exe。我需要编写一个可以读取App.exe并生成它的另一个版本的通用规则。我怎么才能做到这一点呢?

编辑:这是我当前尝试的通用规则,但是它强制使用不同的配置重新编译:hello_main,并且我最终得到类似"error C2955:'std::pair':use of class template requires template argument list“这样的错误。

代码语言:javascript
复制
genrule(
    name = "tbds",
    srcs = [
        ":data",
    ],
    outs = ["tbds.exe"],
    exec_tools = ["@libpackfiles//FilePacker"],
    tools = [":hello_main"],
    cmd = "cp $(location :hello_main) $(OUTS) && $(location @libpackfiles//FilePacker) $(OUTS) -files $(SRCS) -append",
    executable = true,
)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-10 17:44:07

代码语言:javascript
复制
cc_binary(
    name = "hello_main",
    srcs = ["hello_main.cc"],
    deps = [
        ":hello",
    ],
)

genrule(
    name = "foo",
    outs = ["out.txt"],
    cmd = "du -sh  $(location :hello_main)` > $@",
    tools = [":hello_main"],
    visibility = ["//visibility:public"],
)

将使用du -sh命令的输出创建一个out.txt文件。您可以向tools属性添加另一个工具,以便在二进制文件上运行一些转换脚本

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67461291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档