BAZEL for JNI: 找不到 JNI.H 文件



我正在尝试使用bazel来构建我的JNI库(用C编写)。 大约 4 小时后没有运气:"找不到 jni.h 文件"。 如何将 JDK 包含目录放在搜索路径上? 尝试使用绝对路径,但 bazel 拒绝这些路径。 尝试为 JDK 使用new_local_repository,但看不到如何使其工作。

这是MacOS 10.12.6,Java 1.8上的bazel 0.5.3

你能依靠@local_jdk//:jni_header或 https://github.com/bazelbuild/bazel/blob/117da7a947b4f497dffd6859b9769d7c8765443d/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE 的其他魔术标签吗?但是,如果您使用的是自定义--java_base则无法正常工作。

例如,这对我有用:

cc_library(
name = "foo",
srcs = [ 
"@local_jdk//:jni_header",
"@local_jdk//:jni_md_header-linux",
"foo.cc"
],
includes = [ "external/local_jdk/include/linux" ],
)

最新更新