0

我是 FlatBuffers 和 Bazel 的新手。任何人都可以发布一个最小的例子来编译 flatc 本身,monster_generated.h 文件,然后是 sample_text.cpp?

当我运行时:

  • bazel 构建平面缓冲区:flatc

我收到以下错误:

  • 无法找到 @rules_cc//cc:defs.bzl 的包:无法解析存储库“@rules_cc”。

然后我暂时使用 CMake 构建 flatc,然后继续使用 Bazel 构建 sample_text.cpp。我想我在这里找到了一个最小的例子:

但是,当我运行时:

  • bazel 构建 flatbuffers-bazel:sample_binary

我得到:

  • 致命错误:找不到“monster_generated.h”文件

当我作弊并将monster_generated.h(用flatc手动制作,本身用CMake编译)的副本带入工作区,并将其添加到BUILD的srcs部分时,我得到:

  • cc_flatbuffers_compile 类型的每条规则都隐含地依赖于目标“@flatbuffers//:flatc”,但由于以下原因无法找到该目标:没有这样的包“@flatbuffers//”:无法解析存储库“@flatbuffers”

这可能是一个基本问题,因为它确实支持 Bazel,因此非常欢迎任何建议!

谢谢,

肖恩

4

1 回答 1

0

您需要导入rules_cc到您的 WORKSPACE 才能在本地拥有它。

    http_archive(
        name = "rules_cc",
        urls = ["https://github.com/bazelbuild/rules_cc/archive/262ebec3c2296296526740db4aefce68c80de7fa.tar.gz"],
        strip_prefix = "rules_cc-262ebec3c2296296526740db4aefce68c80de7fa",
        sha256 = "3057c13fa4d431eb0e7a9c28eea13f25987d29f869406b5ee3f2bd9c4134cb0c",
    )
于 2020-02-07T10:19:21.203 回答