2013-03-11 13 views
11

Ho compilato con successo il file Mex sul mio laptop. Ma quando lo eseguo, dice Invalid mex file 'c:\newfolder\filename.mexw32' The specified module could not be found.Errore: file MEX non valido, il modulo specificato non è stato trovato

System specification: 
OS: windows 7 
MATLAB 2010a 
Microsoft Visual Studio 2008. 

Lo stesso file mex è compilato ed eseguito correttamente sul mio PC con XP SP3.

+0

Avete un'installazione a 32 o 64 bit? – Nick

+0

Sì, ho l'installazione a 32 bit. il mio sistema operativo è anche 32 bit – anand

+1

Utilizzare MS Dependency Walker in modalità profilo per eseguire il debug di questo –

risposta

4

Sei tu il file mex su un altro sistema rispetto a quello su cui è stato creato?

In tal caso, è necessario installare Microsoft Visual C++ Redistributable su tale macchina.

+1

No, ho compilato il file mex su entrambi i computer separatamente e correttamente. Ma quando ho provato a eseguire quel file mexw32 sul mio portatile, mi mostra errore. – anand

9

This MathWorks support link suggerisce due possibili ragioni per il vostro problema:

  1. Non avere tutte le librerie necessarie che la MEX-funzione è dipendente.
  2. Si sta eseguendo un file MEX su una versione diversa di MATLAB di quanto sia stato compilato.

In entrambi i casi, per individuare la fonte di questo errore che dice che è necessario elencare tutti i file di libreria dipendenti e verificare la loro esistenza nel sistema si sta cercando di eseguire il file MEX, e raccomanda inoltre l'Dependecy Walker come lo strumento per farlo.

+0

dopo aver utilizzato Dependency Walker, mostra .. ? CV210d.dll ? cxcore210d.dll ? libmex.dll ? libmx.dll. Per tutto quanto sopra, mostra "Errore nell'apertura del file. Il sistema non riesce a trovare il file specificato (2)." – anand

+0

@anand Questo è qualcosa che riguarda OpenCV. Hai questo file sul tuo laptop? –

+0

sì, ho tutto questo file sul mio portatile nella directory C: \ OpenCV2.1 \ bin. Non so cosa fare dopo questo ... Si prega di suggerire la soluzione. – anand

0

Ho riscontrato questo problema anche durante l'aggiornamento da Matlab2010a/VS2008 a Matlab2013a/VS2010.

Tutte le mie variabili di ambiente sono state inviate correttamente. Un riavvio risolto problemi con DLL OpenCV non essere trovato, presumo che stava ancora cercando di collegare alle DLL OpenCV per VS2008 (anche se avevo cambiato il percorso). Tuttavia, il mio file mex non è stato in grado di trovare libmex.dll.

Quando ho installato Matlab2013a, non ho disinstallato la versione precedente (nel caso in cui volessi tornare indietro). Tuttavia questa è stata la causa del mio problema. Una volta disinstallata la vecchia versione di Matlab e riavviata di nuovo, il problema era sparito.

0

Ho avuto un problema simile. Stavo solo collegando 1 lib, quindi ho semplicemente copiato quella lib nella stessa cartella del mexw64 e ha funzionato.

Non ho cercato il posto giusto per dire a MATLAB di aggiungere la posizione reale della lib a qualsiasi percorso stia guardando.