jni的bazel:找不到jni.h文件 [英] bazel for jni: jni.h file not found
问题描述
我正在尝试使用bazel构建我的JNI库(用C编写).大约4个小时后没有运气:找不到jni.h文件".如何将JDK包含目录放在搜索路径上?尝试使用绝对路径,但bazel拒绝了这些路径.试图为JDK使用new_local_repository,但看不到如何使之工作.
I'm trying to use bazel to build my JNI library (written in C). No luck after about 4 hours: "jni.h file not found". How can I put the JDK include directories on the search path? Tried using absolute paths but bazel rejects those. Trying to use a new_local_repository for the JDK but cannot see how to make it work.
这是MacOS 10.12.6,Java 1.8上的bazel 0.5.3
This is bazel 0.5.3 on MacOS 10.12.6, Java 1.8
推荐答案
您是否可以依赖@local_jdk//:jni_header
或
Can you depend on @local_jdk//:jni_header
or some other magic labels from https://github.com/bazelbuild/bazel/blob/117da7a947b4f497dffd6859b9769d7c8765443d/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACE? However if you're using custom --java_base
it won't work.
例如这对我有用:
cc_library(
name = "foo",
srcs = [
"@local_jdk//:jni_header",
"@local_jdk//:jni_md_header-linux",
"foo.cc"
],
includes = [ "external/local_jdk/include/linux" ],
)
这篇关于jni的bazel:找不到jni.h文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!