2017-09-11 3 views
1

私はBazelを使用してJNIライブラリを作成しようとしています(C言語で書かれています)。約4時間後に運がない: "jni.hファイルが見つかりません"。 JDKインクルードディレクトリを検索パスにどのように置くことができますか?絶対パスを使用しようとしましたが、bazelはそれらを拒否します。 JDKにnew_local_repositoryを使用しようとしましたが、動作させる方法がわかりません。bazel for jni:jni.hファイルが見つかりません

これはMacOSの10.12.6、Javaの1.8に

+0

[java_toolchain]をご覧ください(https://docs.bazel.build/versions/master/be/java.html#java_toolchain) – Bhavik

+0

@Bhavik:その助けをどうしますか私はJNIを呼び出すCライブラリをビルドしますか? – mobileink

答えて

1

bazel 0.5.3ですが、あなたはhttps://github.com/bazelbuild/bazel/blob/117da7a947b4f497dffd6859b9769d7c8765443d/src/main/java/com/google/devtools/build/lib/bazel/rules/java/jdk.WORKSPACEから@local_jdk//:jni_headerまたはいくつかの他の魔法のラベルに依存することはできますか?ただし、カスタム--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" ], 
) 
+0

魔法の構文は何ですか? cc_libraryのdeps属性で、 '' 'cc_library( name =" myjni "、 deps = [" @local_jdk //:jni_header "、... etc ...' '' /:jni:ファイルグループルール '@local_jdk //:jni_header'がここに配置されています(期待されるcc_inc_library、cc_library、objc_library、またはcc_proto_library)。 " – mobileink

+0

また、https://github.com/bazelbuild/bazel/blob/master/src/もあります。 – mobileink

+0

正しい書式を設定するために答えを編集しました。あなたがこの作業を終わらせてくれたら、 bazel-discuss](https://groups.google.com/forum/#!forum/bazel-discuss)?非常に興味深いです:)。 – mhlopko

関連する問題