Java JNA load.a/.lib库

Java JNA load.a/.lib库,java,jna,Java,Jna,我正在尝试为libfaad2编写jna映射。该库使用mp4ff解析mp4文件。mp4ff在windows上编译为libmp4ff.lib,在linux上编译为libmp4ff.a。JNA只查找.dll/.so文件。那么如何将这个mp4ff加载到jna中呢 编辑 我认为这个问题有答案。我讨厌AAC,我花了4天时间用ffmpeg调试无效的内存访问,现在libfaad使用了一些奇怪的库(我想你是对的,中的答案在这里是相关的。在UNIX类型的系统上,.a文件是一种特殊类型的存档,它包含一个只能静态链接到

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

编辑


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

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

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