gpt4 book ai didi

java - 在 native 库中查找公开的方法以通过 JNA/JNI 访问?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:57:48 26 4
gpt4 key购买 nike

您好:我想使用 JNA 访问 native 库中的一些函数。

1) 我如何检查 native 库文件(例如 .so 文件)以查看可用的方法?

2) .so 文件中可访问的方法与为编译这些文件而构建的 C 代码之间是否存在一对一映射?

3) JNA 是否保证在唯一的 java/ native 互操作涉及从 Java 调用 native 库的所有情况下工作(我假设这是 JNA 的经典用例)——或者有时需要 JNI?

最佳答案

1) depends.exe在 Windows 上,objdumpnm 等。在 *nix 变体上。

2) 大多数共享库都是为 C 风格的链接而设计的。这通常意味着您可以在库中查找与符号对应的地址,但类型(变量、常量或函数)和签名信息(对于函数)通常不会嵌入到库中。

3) JNA 使用很少的通用 JNI 操作来执行它的所有魔法:打开共享库、查找符号、读/写内存、调用函数。在极少数情况下,您必须使用 JNI 而不是 JNA,至少在处理带有 C 链接的库时是这样。

关于java - 在 native 库中查找公开的方法以通过 JNA/JNI 访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161355/

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