繁体   English   中英

JNA加载.a / .lib库

[英]JNA load .a/.lib library

我正在尝试为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的限制,而是大多数操作系统工作方式的一般限制。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM