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-File gegen shared library linken

 

mikemodanoxxx
Forum-Anfänger

Forum-Anfänger



Beiträge: 41
Anmeldedatum: 23.04.09
Wohnort: Höchst/Odw
Version: R2007a
     Beitrag Verfasst am: 16.01.2013, 17:41     Titel: Mex-File gegen shared library linken
  Antworten mit Zitat      
Hallöle,

ich arbeite gerade mit dem mex-compiler und habe ein Problem, das ich mir nicht erklären kann. Mein Programm besteht aus einer shared library und einer .cpp Datei, die mit mex kompiliert werden soll.

Meine .cpp Datei stellt nur die Schnittstelle zwischen Matlab und Cpp dar und ruft im Prinzip nur eine weitere Klasse (MexDevice) auf. Ich habe jetzt versucht das Programm auf zwei Weisen zu kompilieren:

1. Ich kompiliere gegen mexfile.cpp und MexDevice.cpp und linke das gegen meine Library. Das führt zu keinem Fehler und ich kann meine generierte mex-Funktion ganz normal aufrufen.

2. Ich packe die MexDevice.cpp ebenfalls zu der Library dazu und möchte also nur die mexfile.cpp kompilieren und gegen die Library linken. Das führt während der Kompilierung zu keinem Fehler. Beim Aufruf in Matlab erhalte ich aber folgende Meldung:

Code:
Invalid MEX-file
'folder/mexFile.mexglx:
undefined symbol: _ZN9MexDevice17func


Ich kann mir das nicht erklären, weil das Linken gegen die Library bei 1. ja funktioniert, warum klappt es also bei der zweiten Variante nicht korrekt? Den direkten Compiler-Aufruf habe ich jetzt gerade nicht da, weil ich mit cmake kompiliere und das makefile riesig ist (ich umgehe den mex-Compiler indem ich gcc mit den gleichen Parametern aufrufe wie es mex tun würde und anschließend die Datei in .mexglx umbenenne). Daran kann es aber doch eigentlich auch nicht liegen :-S. Er scheint ja einfach die Klasse/Methode nicht zu finden, obwohl diese in der Library ist (das habe ich geprüft).

Ich arbeite mit 32 bit Matlab R2012a unter Ubuntu 12.04.

LG, mike.
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.