我遇到了一个问题,即使声明了头文件也找不到。我的规则是按照answer中的说明生成的,但是在执行过程中,我收到一些错误,某些目标找不到它们所依赖的头文件。
This is my folder structure:
component1/... /.../module1/(containing .c and .h files)
/... /.../module2/(containing .c and .h files)
/BUILD.bazel
/SrcList.bzl
/macro.bzl
BUILD文件如下所示。
cc_library(
name = "module1",
visibility = ["//visibility:public"],
deps = [],
srcs = ["//components/module1:target/src/module1.c"],
linkstatic = True,
hdrs = ["//components/module1:target/src/module1_1.h", "//components/module1:target/src/module1_2.h", "//components/module1:target/src/module1_3.h"],
)
cc_library(
name = "module2",
visibility = ["//visibility:public"],
deps = [:module1],
srcs = ["//components/module2:target/src/module2.c"],
linkstatic = True,
hdrs = ["//components/module2:target/src/module2_1.h", "//components/module2:target/src/module2_2.h", "//components/module2:target/src/module2_3.h"],
)
Src文件使用#include“ foo.h”结构。 Module2取决于module1。但是,如果我启动构建规则,则module2无法找到module1的标头。我该如何解决?
答案 0 :(得分:0)
这些目标不是在工作空间的根目录下吗?
在这种情况下,您将需要根据工作空间根目录来根目录头文件。 以https://github.com/bazelbuild/bazel/blob/master/examples/cpp/hello-lib.cc为例。请注意以下内容:
#include "examples/cpp/hello-lib.h"