Pregunta

Estoy intentando escribir mapeo JNA para libfaad2. La biblioteca utiliza mp4ff para analizar archivos mp4. mp4ff se compila en libmp4ff.lib en las ventanas y libmp4ff.a en Linux. JNA sólo busca .dll / .so archivos. Entonces, ¿cómo puedo cargar este mp4ff en jña?

editar

esta pregunta tiene la respuesta. No me gusta AAC, he pasado 4 días de depuración de acceso a memoria no válida con ffmpeg, ahora libfaad utiliza algunas bibliotecas extraños. : (

¿Fue útil?

Solución

Creo que tienes razón en que la respuesta en este es relevante aquí. En los sistemas de tipo UNIX, los archivos .a son un tipo especial de archivo, la celebración de una biblioteca que sólo pueden ser enlazados dentro de una aplicación (que suena como un archivo .lib es lo mismo que en Windows). Eso significa que no hay manera de cargar la biblioteca en tiempo de ejecución, ya que tendrá una biblioteca dinámica. Pero sabe que esto no es una limitación del JNA, es una limitación general de cómo la mayoría de sistemas operativos de trabajo.

bibliotecas estáticas se convierten en "parte" de un ejecutable resultante (o biblioteca), mientras que las bibliotecas dinámicas se pueden cargar en tiempo de ejecución. Existen ventajas y desventajas de cada uno (por ejemplo, bibliotecas estáticas hacen una aplicación más autosuficientes al no depender en estar presente otras bibliotecas y en las versiones correctas, pero las bibliotecas dinámicas pueden ahorrar espacio en el disco y la memoria, así como una sola presentar a actualizar si hay seguridad u otros parches de corrección de errores). La mayoría del software que he visto puede ser compilado a la vez una biblioteca estática o dinámica (compartido), así que me sorprendería si no podía encontrar lo que está buscando un lugar (o compilar usted mismo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top