我正在尝试使用bazel来构建我的JNI库(用C语言编写)。大约4个小时后没有运气:“找不到jni.h文件”。如何将JDK包含目录放在搜索路径上?尝试使用绝对路径但是bazel拒绝那些。尝试为JDK使用new_local_repository,但无法看到如何使其工作。
这是MacOS 10.12.6上的bazel 0.5.3,Java 1.8
答案 0 :(得分:1)
您能否依赖@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
,则无效。
E.g。这对我有用:
cc_library(
name = "foo",
srcs = [
"@local_jdk//:jni_header",
"@local_jdk//:jni_md_header-linux",
"foo.cc"
],
includes = [ "external/local_jdk/include/linux" ],
)