jni的bazel:找不到jni.h文件 [英] bazel for jni: jni.h file not found

查看:178
本文介绍了jni的bazel:找不到jni.h文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆