Question

J'ai un dll mex64 compilé sur ma machine. Je Matlab 2009b avec VS2008 Pro pour compiler le dll. Le dll fonctionne très bien sur mon installation Matlab.

Je veux un collègue d'utiliser la dll donc je l'ai envoyé à lui et il reçoit le message d'erreur suivant lorsque vous essayez d'utiliser la dll:

  

??? Non valide MEX-file 'filename.mexw64'. Le module spécifié est introuvable

Mon hypothèse actuelle est que cela est causé parce qu'il utilise une ancienne version Matlab ou manquant une dll que j'ai. Je courus Vérificateur de dépendances et lui ai demandé de vérifier qu'il a tous les dll énumérés.

J'attends toujours pour lui confirmer sa la version Matlab.

Quelles autres raisons peuvent causer cela et peut la version Matlab faire une différence? (Je veux dire R2009a quand j'ai R2009b et non une énorme Version diff)


L'autre personne a Matlab R2009a. Ne devrait pas le travail juste si MEX je compile sur mon ordinateur et le livrer à?

Est-ce que laisser une dll manquante dépendante?

Était-ce utile?

La solution 4

La dll est un wrapper pour l'accès MySql. Nous avons fini par utiliser l'ODBC Matlab et le connecteur MySql.

Autres conseils

La question est étrange, mais je peux confirmer qu'il existe.

L'utilisation de bibliothèques pré-construits pour Matlab qui sont correctement installés et sur le chemin, je reçois parfois la même erreur. Si je tape dans le nom de la fonction à la ligne de commande, la fonction est visible et complétées automatiquement. Cependant, la fonction ne sera pas initialiser jusqu'à ce que « cd » dans le répertoire avec le fichier de la bibliothèque .mexw64 I.

>> AndorInitialize('')
Invalid MEX-file 'C:\Program
Files\MATLAB\R2011b\toolbox\andor\AndorInitialize.mexw64': The
specified module could not be found.

>> path

        MATLABPATH

    C:\Program Files\MATLAB\R2011b\toolbox\andor
    C:\Program Files\MATLAB\R2011b\toolbox\andor\camera files
    C:\Program Files\MATLAB\R2011b\toolbox\andor\m files
    ... etc

Il se trouve cela est dû à des dépendances manquantes, ce qui ne devrait pas manquer. Pour résoudre le problème, utiliser pour identifier ce qui manque Walker (gratuit, léger) de dépendance. Le MathWorks explique cela.

http://www.mathworks.com/support/solutions / fr / data / 1-2RQL4L /

Dans mon cas, deux DLL ne montraient pas correctement, même si ils étaient sur mon système et dans le chemin. Je copiais de la DLL dans Windows / system32 et les fonctions de bibliothèque fonctionnent désormais correctement. Ce qui est particulièrement étrange est que la même bibliothèque a travaillé sur mon ordinateur il y a quelques jours (avant le déplacement de la DLL).

En général, les fichiers MEX doivent travailler dans les différentes versions de Matlab; en particulier, ils devraient être tournés vers compatibles. Vous avez raison; sonne comme un problème dll.

Si vous avez construit avec Visual Studio, il peut être lié à Visual C ++ Runtime. Ceci est un ensemble de bibliothèques qui ne sont pas installées sur Windows par défaut. Le "redistribuable", car il peut être téléchargé ; avoir votre collègue de travail d'installation qui pourrait résoudre le problème. Si cela ne fonctionne pas, vous pouvez utiliser Dependency Walker pour vérifier d'autres dépendances DLL non satisfaits.

Normalement, la configuration « -setup MEX » de Matlab utiliser le compilateur Lcc qui est distribué avec Matlab pourrait être un moyen de contourner, mais ce n'est pas pris en charge pour Windows 64 bits AFAIK.

, vous êtes aussi sûr qu'il a la version 64 bits de Windows?

Une autre source possible du problème pourrait être que vous avez compilé en mode débogage. Visual C ++ redistribuables seul mode de libération de support.

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