2012-12-03 1 views
2

J'essaie de déployer une application de Matlab vers JAVA. J'utilise Matlab Builder JA et Image Processing Toolbox. Je crée mon fichier JAR à partir de Matlab R2012a avec le deploytool sur MacOSX.IPPL avec Matlab Compiler Runtime (MCR)

Quand je lance mon programme JAVA en utilisant ce pot sur mon mac, il est OK, mais lorsque je tente de l'exécuter sur un système Linux ou Windows, je reçois l'erreur:

Fonction non définie ou variable « ipplmex » . Erreur dans ==> ippl à 48 erreur dans ==> imrotate> useIPP à 205

l'utilisation de désactivation IPPL avec iptsetpref ('UseIPPL', false) ne résout pas mon problème.

J'ai aussi fait le même travail sur un environnement Linux avec Matlab R2011a, et il fonctionne sur Linux, mais pas sur une machine MacOSX avec la même erreur.

Si quelqu'un a une idée au sujet de cette chose IPPL lors du changement de système d'exploitation, ce serait génial.

Merci!

+0

Je me demande si la version de IPPL déployée dans chaque environnement est différente? –

Répondre

0

composants Java créés avec JA Builder ne sont multiplateformes si elles ne dépendent pas des bibliothèques spécifiques à la plate-forme, tels que les fichiers MEX-vous créez, ou les bibliothèques IPPL fournies avec Image Processing Toolbox. Si vous voulez que votre composant Java utilise IPPL, je pense que vous devrez créer le composant Java une fois sur Mac, une fois sur Linux, une fois sur Windows et utiliser la version créée sur la plate-forme appropriée.

ipplmex est un fichier MEX (spécifique à la plate-forme) qui est appelé par ippl, qui est une fonction utilitaire qui vérifie si IPPL est disponible. Je ne peux pas vérifier cela pour le moment, mais je pense qu'il vérifie la disponibilité, que vous ayez spécifié ou non que vous voulez réellement utiliser IPPL, via la commande iptsetpref. Par conséquent, que vous indiquiez ou non que IPPL doit être utilisé, un fichier MEX spécifique à une plate-forme est appelé. Encore une fois, je ne peux pas vérifier cela pour le moment, mais si vous êtes à l'aise avec votre composant n'utilisant pas IPPL, vous pouvez essayer de modifier la commande ippl pour retourner zéro (indiquant que IPPL n'est pas disponible) sans essayer d'exécuter ipplmex. (Assurez-vous de prendre une copie de votre fichier existant ippl.m avant d'essayer des modifications).

Questions connexes