|
|
mex-File erzeugen (aus einem Fortran-Programm) |
|
hingiswiss |

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 22.04.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.04.2011, 18:52
Titel: mex-File erzeugen (aus einem Fortran-Programm)
|
 |
|
 |
|
Guten Tag liebe Forummitglieder,
ich versuche gerade, aus dem bekannten Fortram-Programm (timestwo.F) das mex-File zu erzeugen. Leider hat es nicht funktioniert. Als Fehlermeldung spuckt Matlab mir folgendes raus:
Warning: You are using gcc version "4.1.2". The version
currently supported with MEX is "4.3.4".
For a list of currently supported compilers see:
http://www.mathworks.com/support/compilers/current_release/
.../matlab_2010b/bin/mex: line 1041: g95: command not found
mex: compile of ' "timestwo.F"' failed.
??? Error using ==> mex at 208
Unable to complete successfully.
Also, an der Version meines Fortran-Compilers (gcc 4.1.2) kann es glaube ich nicht liegen, da ich bei einem C-Programm mit demselben Compiler sein mex-File erzeugen konnte. Außerdem, es ist da oben ja nur ein "Warning", nicht irgendwie ein Fehler.
Könntet Ihr mir vielleicht helfen, woran es hier liegen kann? Was bedeuten denn die Fehler:
.../matlab_2010b/bin/mex: line 1041: g95: command not found
und
??? Error using ==> mex at 208
Ich bedanke mich schon mal im Voraus für Eure Kommentare.
Viele Grüße aus Rheinland,
Eure Ratna
|
|
|
|
|
Horsti |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.04.2011, 19:05
Titel:
|
 |
Na die Fehlermeldung sagt's ja fast schon eindeutig. In den Mex-Options steht g95 als dein Fortran Compiler. Und diesen gibt's wohl auf deinem Rechner nicht. Hast Du denn einen Fortran Compiler installiert?
Wenn ja, dann kannst Du dir ein Alias Schreiben oder einfach einen Softlink mit dem Namen erstellen.
z.B. in /usr/local/bin
ln -s gfortran g95
Horsti
|
|
|
hingiswiss |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 22.04.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.04.2011, 20:01
Titel:
|
 |
Hallo Horsti,
vielen Dank erstmal für die rasche Antwort.
mex geht also im Default-Monde von g95 aus.
Ein Fortran-Compiler ist auf dem Cluster installiert. Da ich lediglich einer der vielen Benutzer auf diesem Cluster bin, kann ich die Option mit:
z.B. in /usr/local/bin
ln -s gfortran g95
wahrscheinlich schwer implementieren. Ich kriege keinen Zugriff zu diesen Verzeichnissen(soweit ich mich nicht irre).
Der Fortran-Compiler, der auf dem Rechner/Cluster installiert ist, ist gfortran von GCC, wie Du schon richtig geahnt hast.
Kann ich denn vielleicht in den mex-Options so einstellen, dass statt g95 gfortran(da der Fortran-Compiler unter GCC in der Tat gfortran heißt) sein soll? Das müsste doch in dem Programm Matlab funktionieren oder?
Vielen Dank für Deine/Eure Hilfe.
Schöne Grüße aus Rheinland,
Eure Ratna
|
|
|
Horsti |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2011, 16:56
Titel:
|
 |
Du kannst natürlich auch die mex Optionen ändern. Bin mir jedoch nicht sicher, ob Du auf einem Cluster genügend Rechte hättest.
Die Einstellungen des Mex-Compilers findest Du in der mexopts.sh im Matlab-Verzeichnis unter bin, z.B. /usr/local/Matlab/bin oder so...
Evtl. kann man diese Optionen übergehen und eigene Parameter übergeben. Z.B. steht hier:
http://www.mathworks.com/help/techdoc/ref/mex.html#bq6x7bj
Für Fortran könnte das hier klappen
Hab leider kein Unix und kein Fortran installiert.
Check doch Mal,
Horsti
|
|
|
hingiswiss |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 18
|
 |
|
 |
Anmeldedatum: 22.04.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.04.2011, 23:04
Titel:
|
 |
Hallo Horsti,
vielen Dank für Deinen Tipp, er war der Volltreffer; damit kann ich jetzt das Mex-File erzeugen.
Habe allerdings noch eine Kleinigkeit, die ich gerne verstünde:
Das "Template" sieht ja so aus.
mex -v CFLAGS="\$CFLAGS -Wall" LDFLAGS="\$LDFLAGS-w" yprime.c
Soweit ich mich nicht irre, sind CFLAGS und LDFLAGS Variablen in dem mexopt-File(File für Mex-Optionen). Meine Frage:
Weisst Du vielleicht was der Unterschied zwischen den Beiden ist?
Ist vielleicht CFLAGS = Compiler-FLAGS?
Wie sind -Wall und -w zu verstehen?
Vielen Dank für Deine/Eure Mühe.
Schöne Grüße aus Rheinland,
Eure Ratna
|
|
|
Horsti |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.04.2011, 18:08
Titel:
|
 |
Na, CFLAGS sind Compiler-Flags und LDFLAGS die Linker-Flags
Mit
CFLAGS="\$CFLAGS -Wall"
wird an die bestehenden Compiler-Flags (also zusätzliche Optionen für den Compiler) die Option "Wall" angehängt. Welches nun aber nicht "Wand" bedeutet, sondern im Sinne von "enable all warnings"... Sollte man eigentlich immer anschalten.
Die LDFLAG kenn ich jetzt nicht. Da müsstet Du mal im gcc Handbuch/Hilfe nachschauen.
Horsti
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|