gpt4 book ai didi

Gradle Jitpack 项目中的 Java JNI 构建

转载 作者:行者123 更新时间:2023-12-01 21:10:21 25 4
gpt4 key购买 nike

我正在努力在 open source Java Project 中使用 native JNI 代码.

我已经能够拼凑出一个可用的 build.gradle使用 gradle 模型、组件和工具链进行 native 构建,但我无法让它为多个目标构建(linux .so 和 mac .dylib - 该项目当前不支持 windows)。好像只有新的cpp-library gradle plugin gradle 支持多个目标吗?该构建现在可以在我的 mac 和 library loads from the jar 上运行(感谢 previous post !)但是 System.load 调用是目标相关的(dylib 与 so)。

Jitpack build失败是因为它没有 GCC 或 CLANG?我在 jitpack docs 中找不到任何内容或有关使用 native 组件构建项目的常见问题解答。我猜它不受支持?

这一切似乎都异常困难。任何能够很好地做到这一点的示例项目都会有很大的帮助!

(如果我能让构建工作,我将更新许可证以表彰 Lucene 的人员,他们首先实现了 madvise 系统调用来管理页面缓存!)

最佳答案

在与一些前同事联系后,我使用 JNR-FFI 取得了更大的成功。 。这是与 native 库集成的一种更简单的方法,我强烈推荐它。使用JNR-Constants来处理常量仍然有点尴尬。 。不幸的是,我需要的 madv_willneed、madv_sequential 等值当前尚未定义,需要添加。

总的来说,这种新方法相对于 gradle 项目中与 native jni 的集成来说是一个很大的改进。由于业务逻辑全部用 java 编写,因此更容易测试行为,并且 travis 和 jitpack 等工具也可以正常工作。

这是 this 上 uppend 的完整更改历史记录功能。

关于Gradle Jitpack 项目中的 Java JNI 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58906158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com