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: header in C korrekt einbinden

 

Pablo_NC
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 19.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.07.2017, 16:10     Titel: MEX: header in C korrekt einbinden
  Antworten mit Zitat      
Hallo zusammen,

mit dem C-Programmieren und mex-Files erzeugen bin ich noch recht frisch, habe aber schon einige simplere erzeugen können.

Nun möchte ich einen header einbeziehen, um genau zu sein:

spline.h

von https://github.com/ttk592/spline/

Code:

#include "math.h"
#include "spline.h"
#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    return;
}
 


Wenn ich nun eine c-Datei erzeuge, die noch nichts macht, sondern nur spline.h einbindet, dann bekomme ich etliche Fehler....

Code:

>> mex Interpolate_Loads_C.c
Building with 'Microsoft Windows SDK 7.1 (C)'.
Error using mex
Interpolate_Loads_C.c
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\cstdio(38) : error C2054: expected '(' to follow 'using'
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\cstdio(40) : error C2061: syntax error : identifier 'using'
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\cstdio(40) : error C2054: expected '(' to follow 'using'
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\cstdio(40) : error C2061: syntax error : identifier 'using'
...
 


Kann mir jemand sagen was ich falsch mache.

Zur Info meine Interpolate_Loads_C.c und die spline.h sind im selber Ordner.

Vielen Dank für eure Hilfe und beste Grüße,

Pablo
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.07.2017, 18:22     Titel: Re: MEX: header in C korrekt einbinden
  Antworten mit Zitat      
Hallo Pablo_NC,

cstdio ist eine C++ Bibliothek, und kein C. Dann benötigst Du ein C++ Code und den entsprechenden Compiler. Da Du aber in C programmieren willst, ändere spline.h um stattdessen <stdio> einzubinden.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Pablo_NC
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 19.10.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2017, 13:51     Titel: GSL für Matlab Mex Dateien einbinden
  Antworten mit Zitat      
Hallo Jan S,

erst mal vielen Dank. Das Problem sehe ich ein. Da ich heute noch etwas weiter geschaut habe und ein Umfangreicheres Paket gefunden habe, das quasi alle mathematischen Sachen kann die ich möchte GNU Scientific Library, würde ich diese gerne nutzen.

Jetzt habe ich das runtergeladen. MINGW isntalliert und die GSL configuriert etc.

Jetzt ist meine Frage ich möchte aus diesem Paket nun gsl_spline.h und gsl_errno.h per include Befehl in meine Mex Datei einbinden.

Code:

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <gsl_errno.h>
#include <gsl_spline.h>
#include "mex.h"

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    return;
}
 


wie muss ich jetzt die c-Datei mit dem mex befehl compilieren um die GSL libraries einzubinden?

Code:

>> mex Interpolate_Loads_C.c -lgsl
Error using mex
MEX cannot find library 'gsl' specified with the -l option.
 MEX looks for a file with one of the names:
 libgsl.lib
 gsl.lib
 Please specify the path to this library with the -L option.
 


Wenn ich das durchführe erhalte ich einen Fehler, der findet die library nicht, die liegt in C:/gls/.lib

außerdem heißt die Datei libgsl.a nicht *.lib?

Ich hab den Tag lang jetzt gesucht, aber hab nichts raus bekommen.

Kann mir jemand helfen?

Gruß,
Pablo
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.