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

Problem beim Mex compilieren mit FTTW Bibliothek

 

Arnox
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 27.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.02.2011, 20:00     Titel: Problem beim Mex compilieren mit FTTW Bibliothek
  Antworten mit Zitat      
Hi,

ich schreibe gerade ein Programm das viele Operationen mit 2D FFTs mit Padding benötigt.
Deshalb habe ich versucht ein Mex File zu schreiben, dass auf FFTW zugreift.
Wenn ich mein Programm allerdings mit Matlab compiliere bekomme ich folgende Fehlermeldung:
Code:
>> mex fftwmex.c -lfftw3-3
   Bibliothek "C:\Users\Arne\AppData\Local\Temp\mex_thf7So\templib.x" und Objekt "C:\Users\Arne\AppData\Local\Temp\mex_thf7So\templib.exp" werden erstellt.
fftwmex.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_fftw_destroy_plan" in Funktion "FFT1DInterleaved".
fftwmex.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_fftw_execute" in Funktion "FT1DInterleaved".
fftwmex.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_fftw_plan_dft_1d" in Funktion "FFT1DInterleaved".
fftwmex.mexw64 : fatal error LNK1120: 3 nicht aufgelöste externe Verweise.
 
  C:\PROGRA~1\MATLAB\R2010B\BIN\MEX.PL: Error: Link of 'fftwmex.mexw64' failed.
 
??? Error using ==> mex at 208
Unable to complete successfully.


Ich benutze Matlab R2010b unter Windows 7 mit MS Visual Studio 2008 als compiler, einfache mex files ohne externe Bibliotheken funktionieren auch wunderbar.
Folgendermaßen habe ich alles eingerichtet:

- MS VS 2008 installiert und mit
Code:
in Matlab gesetzt

- FFTW für Win64 runtergeladen und die Biblotheken nach dieser http://www.math.ucla.edu/~anderson/...../FFTW/ObtainingFFTW3.html erstellt

- Einen statischen Pfad in mexopts.bat der auf die FFTW installation zeigt (G:\FFTW\fftw-3.2.2-dll64) bei PATH, INCLUDE und LIB hinzugefügt

- versuch zu compilieren mit
Code:
mex fftwmex.c -lfftw3-3


Habe mein Programm nach dieser Anleitung gebaut http://www.mathworks.com/matlabcent.....-writing-matlab-cmex-code
Wäre sehr froh wenn mir jemand helfen könnte, da ich leider auf dem Gebiet Mex Files meine ersten Schritte mache.

LG Arne

fftwmex.c
 Beschreibung:

Download
 Dateiname:  fftwmex.c
 Dateigröße:  897 Bytes
 Heruntergeladen:  462 mal
Private Nachricht senden Benutzer-Profile anzeigen


Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2011, 10:41     Titel:
  Antworten mit Zitat      
probiere mal, in deinem c-File den kompletten Header-Weg einzugühren oder die Anführungsstriche.

Mfg Ich,

Falls dass nciht klappt, versuche Ich heute noch den Weg über den MinGW Compiler online zu stellen. Das hat funktioniert.

Mfg Icke
Private Nachricht senden Benutzer-Profile anzeigen
 
Arnox
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 27.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2011, 11:33     Titel:
  Antworten mit Zitat      
Hey danke für die schnelle Antwort, habe beides ausprobiert aber das bringt leider die gleiche Fehlermeldung.
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2011, 18:27     Titel:
  Antworten mit Zitat      
Sers,

Ich habn kleines tut verfasst, wie du dir dlls selber erstellen kannst, siehe tutorials thread. Würde mich freuen, wenn du mal vll auch aus deinem Eigeninteresse diese Geschichte mal durchspielen könntest.

Mfg Icke
Private Nachricht senden Benutzer-Profile anzeigen
 
Arnox
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 27.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.02.2011, 19:00     Titel:
  Antworten mit Zitat      
Moin,

bin gerade dabei MinGW zu installieren Smile

MfG Arne
Private Nachricht senden Benutzer-Profile anzeigen
 
Arnox
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 27.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.03.2011, 19:11     Titel:
  Antworten mit Zitat      
Da ich mit Crosscompilieren leider auch nicht weiter gekommen bin, möchte ich zumindest die Möglickeit ausschließen dass die Biblibothek falsch erstellt wurde.
Habe dafür folgendes versucht zu compilieren:
Code:
#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])
{
double *A, *B, *C, one = 1.0, zero = 0.0;
int m,n,p;
char *chn = "N";
A = mxGetPr(prhs[0]);
B = mxGetPr(prhs[1]);
m = mxGetM(prhs[0]);
p = mxGetN(prhs[0]);
n = mxGetN(prhs[1]);
if (p != mxGetM(prhs[1])) {
mexErrMsgTxt("Inner dimensions of matrix multiply do not match");
}
plhs[0] = mxCreateDoubleMatrix(m, n, mxREAL);
C = mxGetPr(plhs[0]);
/* Pass all arguments by reference */
dgemm (chn, chn, &m, &n, &p, &one, A, &m, B, &p, &zero, C, &m);
}
 


In Matlab versucht mit
Code:
mex lapa.c "C:/Program Files/MATLAB/R2010b/extern/lib/win64/microsoft/libmwlapack.lib"


Und ich bekomme wieder folgende Fehlermeldung:


Code:
mex lapa.c "C:/Program Files/MATLAB/R2010b/extern/lib/win64/microsoft/libmwlapack.lib"
Microsoft (R) C/C++-Optimierungscompiler Version 15.00.21022.08 fr x64
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
 
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation.  All rights reserved.
 
C:\Users\Arne\AppData\Local\Temp\mex__ouEcv\lapa.obj "C:\Program Files\MATLAB\R2010b\extern\lib\win64\microsoft\libmwlapack.lib"  
   Bibliothek "C:\Users\Arne\AppData\Local\Temp\mex__ouEcv\templib.x" und Objekt "C:\Users\Arne\AppData\Local\Temp\mex__ouEcv\templib.exp" werden erstellt.
lapa.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "dgemm" in Funktion "mexFunction".
lapa.mexw64 : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
 
  C:\PROGRA~1\MATLAB\R2010B\BIN\MEX.PL: Error: Link of 'lapa.mexw64' failed.
 
??? Error using ==> mex at 208
Unable to complete successfully.


Hab den die Datei wieder angehängt, vielleicht könnte jemand anders dass mal versuchen zu compilieren und gucken ob es auch wirklich so geht.

Habe meine Umgebung noch mal neu eingerichtet und zwar mit folgender Anleitung:
http://www.mathworks.com/matlabcentral/fileexchange/22689 und der Abwandlung die Snowred Wang in den Kommentaren beschreibt

Wenn jemand noch eine Idee hat was falsch läuft bitte posten.

MfG Arne

lapa.c
 Beschreibung:

Download
 Dateiname:  lapa.c
 Dateigröße:  646 Bytes
 Heruntergeladen:  469 mal
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 - 2025 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.