Matlab-Funktionen in C einbinden (Eclipse, OS: Ubuntu)

Cappaja

Erfahrenes Mitglied
Hallo,

ich möchte gerne aus einem C-Programm heraus eine .MAT-File erstellen. Auf Mathworks bin ich unter http://www.mathworks.com/help/techdoc/matlab_external/f39876.html fündig geworden.

Die Dateien mat.h und matrix.h sind korrekt eingebunden in das Projekt und funktionieren. Bei den Library Dateien bin ich mir allerdings nicht sicher. Ich habe zusätzlich das Programm Scilab installiert welches unter dem Pfad /usr/lib/scilab die Dateien libmat.so und libmx.so enthält. Diese sollen den Angaben nach zu Folge die auf Linux-Ebene verwendeten Library-Dateien sein. Den Pfad hab ich in den Projekteinstellungen unter C/C++ Build -> Settings -> GCC C Linker -> Libraries als Library search path eingegeben.

Dennoch erhalte ich beim Linken die Standard-Fehlermeldungen wenn er die MEX-Functions nirgends finden kann: undefined referenco to "function name".

Sind diese .SO Dateien die richtigen Librarys oder muss man diese erst noch entpacken? Ich arbeite zum ersten mal mit C auf Linux-Ebene und habe daher noch ein paar Probleme.
Wäre für jede Hilfe sehr dankbar!

Grüße Cappaja
 
Keine Ahnung warum das jetzt so lange gedauert hat, aber die Lösung war so simpel und nah. In einem Forum hab ich gelesen das ich den library search path setzen muss, das war zumindest in meinem Fall nicht richtig.

Hier die Lösung: In Projekteigenschaften unter C/C++ Build -> Settings -> GCC C Linker -> Libraries und dort im oberen Feld unter Libraries (nicht Library search path) die beiden Dateien libmat.so und libmx.so einbinden - fertig!
Die Headerdateien können direkt ins Projekt integriert werden wobei ich noch zusätzlich die Headerdatei tmwtypes.h einbinden musste, da matrix.h typedefs von dort bezieht...

Grüße Cappaja
 
Zurück