gpt4 book ai didi

java - JNA 加载 .a/.lib 库

转载 作者:行者123 更新时间:2023-11-30 06:39:14 25 4
gpt4 key购买 nike

我正在尝试为 libfaad2 编写 jna 映射。该库使用 mp4ff 来解析 mp4 文件。 mp4ff 在 Windows 上编译为 libmp4ff.lib,在 Linux 上编译为 libmp4ff.a。 JNA 只查找 .dll/.so 文件。那么如何将这个 mp4ff 加载到 jna 中呢?

编辑

我认为this问题有答案。我讨厌 AAC,我花了 4 天时间用 ffmpeg 调试无效的内存访问,现在 libfaad 使用了一些奇怪的库。 :(

最佳答案

我认为您是对的,this 中的答案在这里是相关的。在 UNIX 类型的系统上,.a 文件是一种特殊类型的存档,包含只能静态链接到应用程序的库(听起来像 .lib 文件在 Windows 上是一样的)。这意味着无法在运行时加载该库,因为您将需要一个动态库。但要知道这不是 JNA 的限制,它是大多数操作系统工作方式的一般限制。

静态库成为生成的可执行文件(或库)的“一部分”,而动态库可以在运行时加载。每个都有优点和缺点(例如,静态库使应用程序更加自给自足,因为它不依赖于存在的其他库和正确的版本,但是动态库可以节省磁盘和内存空间以及单个如果有安全补丁或其他错误修复补丁,要更新的文件)。我见过的大多数软件都可以编译成静态或动态(共享)库,所以如果您找不到您要找的东西(或自己编译),我会感到很惊讶。

关于java - JNA 加载 .a/.lib 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1277034/

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