Question

Je suis en train d'écrire la cartographie pour libfaad2 jna. La bibliothèque mp4ff utilise pour l'analyse des fichiers mp4. mp4ff est compilé dans libmp4ff.lib sur les fenêtres et libmp4ff.a sur linux. JNA ne recherche que les fichiers .dll / .so. Alors, comment puis-je charger cette mp4ff dans jna?

EDIT

Je pense que cette question a la réponse. Je déteste AAC, j'ai passé 4 jours de débogage accès mémoire invalide avec ffmpeg, maintenant utilise libfaad des bibliothèques étranges. : (

Était-ce utile?

La solution

Je pense que vous avez raison que la réponse cette est pertinente. Sur les systèmes de type UNIX, les fichiers .a sont un type particulier d'archives, la tenue d'une bibliothèque qui ne peut être lié statiquement dans une application (il ressemble à un fichier .lib est la même chose sous Windows). Cela signifie qu'il n'y a aucun moyen de charger cette bibliothèque lors de l'exécution, que vous aurez besoin d'une bibliothèque dynamique. Mais sachez que ce n'est pas une limitation de la JNA, il est une limitation générale de la façon dont le travail La plupart des systèmes d'exploitation.

bibliothèques statiques deviennent « partie » d'un exécutable résultant (ou de la bibliothèque), tandis que les bibliothèques dynamiques peuvent être chargées à l'exécution. Il y a des avantages et des inconvénients de chacun (par exemple, les bibliothèques statiques rendent une application plus autonome en ne se fondant sur d'autres bibliothèques étant présentes et dans les versions correctes, mais les bibliothèques dynamiques peuvent gagner de l'espace sur le disque et la mémoire ainsi qu'une seule fichier à mettre à jour s'il y a la sécurité ou d'autres patchs de correction de bugs). La plupart des logiciels que je l'ai vu peut être compilé à la fois une bibliothèque statique ou dynamique (partagé), donc je serais surpris si vous ne trouvez pas ce que vous cherchez quelque part (ou compiler vous-même).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top