Résolution de l'erreur UnsatisfiedLinkError : impossible de trouver les bibliothèques dépendantes dans les projets JNI
Lors du développement de projets Java Native Interface (JNI), vous pouvez rencontrer le erreur : "java.lang.UnsatisfiedLinkError : C:...path...mylib.dll : Impossible de trouver les bibliothèques dépendantes." Cette erreur indique que la machine virtuelle Java (JVM) ne peut pas localiser les bibliothèques partagées (DLL) requises par votre bibliothèque JNI.
Résoudre le problème
Pour résoudre le problème , envisagez les solutions suivantes :
-
Assurez-vous que le chemin de la bibliothèque est correct : Vérifiez que les bibliothèques dépendantes (par exemple, libsndfile-1.dll) se trouvent dans le même répertoire que la bibliothèque principale ( mylib.dll) ou dans un répertoire répertorié dans la variable d'environnement Windows PATH. La JVM s'appuie sur ce chemin de bibliothèque pour localiser les dépendances requises.
-
Corriger la modification du nom de la méthode : Vérifiez à nouveau que les noms de méthode dans la bibliothèque JNI correspondent exactement à ceux de l'en-tête JNI correspondant. déposer. Les compilateurs Visual Studio peuvent modifier les noms de méthodes, alors assurez-vous de spécifier les indicateurs d'éditeur de liens appropriés pour générer une dénomination cohérente.
-
Spécifiez explicitement le chemin de la bibliothèque : Si les méthodes précédentes échouent, vous pouvez définir explicitement le chemin de la bibliothèque Propriété système .library.path vers le répertoire contenant les bibliothèques dépendantes. Cela remplace le chemin de recherche de bibliothèque par défaut.
Dans Visual Studio 2010 sur macOS, la plate-forme cible doit être définie sur Windows, car vous testez sur Windows XP. Si le développement est effectué sous Windows, définissez la plate-forme cible en conséquence.
Conseils supplémentaires
Pour plus de référence, consultez « The JNI Book » ou la version HTML Oracle du Spécification JNI. Vous pouvez également utiliser la commande "java -XshowSettings:properties -version" pour identifier le chemin de recherche de la bibliothèque partagée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn