mit MinGW versucht Linux Bibliotheken auf Win32 nutzbar zu machen und dann mexen
-
Servus liebe Community,
Erstmal wünsche ich ein schönes Restfest sowie einen guten Rutsch ins neue Jahr mit viel Gesundheit und Erfolg in allen Lebensbereichen.
To Topic:
Eigentlich überschneidet das Thema viele Themenbereiche. Ich habe unter Suse 11.2 ein paar Codes gehämmert, die zwei Linuxlibs neben den anderen Usus-Libs nutzen(math.h, complex.h, stdlib.h....) und zwar fftw3 und nfft3. Anschließend habe ich diese unter Linux in Matlab zu MexFiles kompiliert und ausgiebig auf Bugs etc getestest.
Nun habe ich die Libs auf Linux portiert und zwar mit MinGW unter der MSYS Konsole.
Hierfür habe ich ganz normal die typischen Installationsbefehle genutzt und zwar
./configure --with-our-malloc16 --enable-shared --enable-portable-binary --enable-sse2 --prefix=c:/MinGW/msys/1.0/home/Inge/Progs/fftwdir make make install
Anschließend habe ich die erstellten Binaries in .defs umgewandelt und zu statuc libraries (für Matlav) konvertiert.
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
Nun habe ich versucht einige Mex Files zu erstellen, was aber so nicht richtig funktioniert hatte. Mit diesen shared libs habe ich dann versucht unter Matlab zu mexen:
mex potts_infft.c -Ic:\MinGW\fftw3dir\include -Lc:\MinGW\fftw3dir\bin -Ic:\MinGW\nfft3dir\include -llibfftw3-3 -Lc:\MinGW\nfft3dir\bin -llibnfft3-0
was mir auch einen Mex File erstellt hat. Nun will ich die Mex aufrufen innerhalb eines m-Files. Dann gibt es mir nur folgendes aus und ich hab keine Ahnung woran das liegt.
??? Invalid MEX-file 'C:\work\dft trafos\nfft potts\potts_nfft.mexw32': Das angegebene Modul wurde nicht gefunden.
Ich habe die Welt nicht mehr verstanden. Kennt jemand das Problem oder hat eine Ahnung?
Ich sitz da schon seit einer Weile ohne Plan.
Mfg Ich