WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mex nicht gefunden obwohl im Ordner

 

Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2010, 13:06     Titel: Mex nicht gefunden obwohl im Ordner
  Antworten mit Zitat      
Sehr geehrte Community,

Ich habe ein recht interessantes Problem was mich selten so auf einen Schlag ratlos gemacht hat. Ich habe in Linux einige C Bibliotheken genutzt und Funktionen entwickelt, die ich unter Linux über mex ins Matlab portiert habe. Bis hierhin kein Problem. Nachdem ich dieses über MinGW auf XP portiert habe, kann ich nicht auf den entstandenen Mex File zuzugreifen und ich habe keinen blassen Schimmer, wo ich ansetzen soll, damit dieses Problem beseitigt wird.

Invalid MEX-file 'C:\work\myfunction.mexw32': Das angegebene Modul wurde nicht gefunden.

Dieser Code kommt bei beiden geschrieben Funktionen vor. Ich hab wie gesagt keinen blassen Schimmer, ob ich z.B: bei der Installation mit MinGW schon irgendwas verpennt habe, oder bei der Umwandlung der kompilierten dll Datei in eine .lib. Nach mexxing wollte ich die Funktionen testen und nich passiert, nur die Fehlermeldung.

Hat jemand damit schonmal zu tun gehabt?

Ich hoffe mit der Portierung von Linux zu winxp hat damit nichts oder nur recht simpel zu tun.

Mfg Ich
Private Nachricht senden Benutzer-Profile anzeigen


Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 15.12.2010, 14:02     Titel:
  Antworten mit Zitat      
Hatte nach einem Absturtz ein ähnliches Problem, die Files liesen sich nicht mehr öffnen.
Was bei mir geholfen hat: löschen und neu komilieren.
Weiss jetzt nicht ob die Fikles aus irgendeinem Grund gelockt waren oder ich die Schreibberechtigung verloren habe. Kann alles sein.
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Scriptor
Themenstarter

Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2010, 14:57     Titel:
  Antworten mit Zitat      
Achi hat Folgendes geschrieben:
Hatte nach einem Absturtz ein ähnliches Problem, die Files liesen sich nicht mehr öffnen.
Was bei mir geholfen hat: löschen und neu komilieren.
Weiss jetzt nicht ob die Fikles aus irgendeinem Grund gelockt waren oder ich die Schreibberechtigung verloren habe. Kann alles sein.


gelockt? verstehe nicht ganz. löschen und kompilieren klappt jedenfalls nicht. schade
Private Nachricht senden Benutzer-Profile anzeigen
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 15.12.2010, 15:05     Titel:
  Antworten mit Zitat      
es gibt einen Schreibschutz für mex-Files:
Code:

und umgedreht:
Code:
mexUnlock()


denke beim Absturz wurde es durch den Befehl mexLock() schreibgeschützt, obwohl der Befehl nicht in meinem File vorkommt!
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.12.2010, 15:50     Titel:
  Antworten mit Zitat      
Ein MEXW32 funktioniert nur auf Win32. Hilfe z.B. hier:

http://www.mathworks.com/help/techdoc/ref/mexext.html

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.12.2010, 16:04     Titel:
  Antworten mit Zitat      
Andreas du meinst mit "NUR" Matlab 32 bit? Ich kann doch Matlab 32 Bit Version auf 64 Bit Rechner installieren und trodzdem Mex32 verwenden, oder etwa nicht?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.12.2010, 16:07     Titel:
  Antworten mit Zitat      
New File Extension for MEX-Files on Windows Systems

MATLAB now uses the extension .mexw32 for MEX-files on 32-bit versions of Windows systems.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 15.12.2010, 16:20     Titel:
  Antworten mit Zitat      
Gast hat Folgendes geschrieben:
New File Extension for MEX-Files on Windows Systems

MATLAB now uses the extension .mexw32 for MEX-files on 32-bit versions of Windows systems.


Das ist klar, dieser Satz stammt noch aus der Hilfe von R2006,
es ist aber seitdem viel Zeit vergangen, man hat jetzt 64-Bit Systeme, man kann darauf auch 32 Bit Matlab Version laufen lassen. 32 Bit Matlab kann ja nur Mex32 ausführen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 15.12.2010, 18:51     Titel:
  Antworten mit Zitat      
Also ein 32 Bit MATLAB auf einem Win64 System KANN MEXW32 Dateien verstehen.

Ich dachte, dass hier generell das Problem vorliegt, dass MEXW32 z.B. auf Linux versucht wird - was fehlschlägt.

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Scriptor
Themenstarter

Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2010, 02:26     Titel:
  Antworten mit Zitat      
Andreas Goser hat Folgendes geschrieben:
Also ein 32 Bit MATLAB auf einem Win64 System KANN MEXW32 Dateien verstehen.

Ich dachte, dass hier generell das Problem vorliegt, dass MEXW32 z.B. auf Linux versucht wird - was fehlschlägt.

Andreas


Nee so einfach mache ich es mir dann doch nicht Wink

Ich habe mir in Suse mithilfe zweier Libs in c (fftw3 von der genialen Truppe aus Michigan und nfft3 von den ebenso genialen Trupp um Daniel Potts. Diese Mex-Files sind unter Linux auch gelaufen und laufen immer noch.

Als nächstes stand die Portierung auf Windows an.

Hierfür habe ich mit MinGW die Libs installiert wie unter Linux auch (MinGW erstelle mir dafür DLL Dateien. Im MinGW war hierfür eine Bash Shell (msys) miteliefert, mit der das wie unter Linux der Fall ist.

Jedenfalls habe ich mir hierfür ide Pakete von der fftw3 - Seite runtergeladen und installiert mit

→ ./configure --with-our-malloc16 --enable-shared --enable-portable-binary --enable-sse2 --prefix=c:/MinGW/msys/1.0/home/Scriptor/Progs/fftwdir
→ make
→ make install
.

Nun hat mir MinGW in prefixordner/bin eine dll erstellt.

Diese habe ich mit


-> cd bin
-> echo EXPORTS > libfftw3-3.def
-> nm libfftw3-3.dll | grep ' T _' | sed 's/.* T _//' >> libfftw3-3.def
-> dlltool -d libfftw3-3.def -D libfftw3-3.dll --output-lib libfftw3-3.lib

in .lib Dateien umgewandelt um Matlab darauf zugeifen zu lassen.

Gleiches habe ich mit der nfft3 Lib gemacht.

Nun habe ich mir die selbstgeschriebenen .c Funktionen von Suse geholt und mit

"mex potts_infft.c -Ic:\MinGW\fftw3dir\include -Lc:\MinGW\fftw3dir\bin -Ic:\MinGW\nfft3dir\include -llibfftw3-3 -llibnfft3-0"


gemext. Anschließend habe ich die oben genannte Fehlermeldung

"Invalid MEX-file 'C:\work\myfunction.mexw32': Das angegebene Modul wurde nicht gefunden."

erhalten.

Vll hilft die Aufschlüsselung besser. Wenn ich die Diplomarbeit durch habe und alles funzt, gebe ich gern die OS-Portierung als Tutorial weiter. Vll auch die non uniform FFT Funktionen, mal sehen.

Schöne Grüße!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Themenstarter

Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.12.2010, 16:32     Titel:
  Antworten mit Zitat      
hat keiner eine Idee oder Anregung?

Danke und Gruß,

Scriptor
Private Nachricht senden Benutzer-Profile anzeigen
 
mickbro

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.08.2019, 10:48     Titel:
  Antworten mit Zitat      
Ist zwar ein sehr alter Post aber ich bin soeben selbst darüber gestolpert. Wenn die mexw32 oder mexw64 weitere Abhängigkeiten hat die nicht gefunden werden können, kommt der Fehler auch.
 
JanInfoMed
Forum-Anfänger

Forum-Anfänger


Beiträge: 23
Anmeldedatum: 29.08.19
Wohnort: Regensburg
Version: ---
     Beitrag Verfasst am: 03.09.2019, 11:32     Titel:
  Antworten mit Zitat      
get more apps -> MATLAB Support for MinGW-w64 C/C++ Compiler
und das ausführen, dann müsst es eig. gehen
copyfile(fullfile(matlabroot,'extern','examples','mex','explore.c'),'.','f')
mex -setup
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.