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

mexen mit dlls nicht möglich?

 

Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.02.2011, 16:49     Titel: mexen mit dlls nicht möglich?
  Antworten mit Zitat      
Sehr geehrte Community,

In meinen Arbeiten habe ich die ehrenvolle Aufgabe, eine meiner Linuxfunktionen zu compilieren. Wie kann ich denn die dll einbinden? Mir wird angezeigt, dass nur statische Bibliotheken kompiliert werden können. Woran liegt das? Bzw, was kann ich machen, damit die Funktionen eingebunden werden?

Mfg Ich
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.02.2011, 16:55     Titel:
  Antworten mit Zitat      
Hallo,

ich würde es normal zunächst mit LOADLIBRARY und CALLLIB versuchen.
Ist das der Weg, den du versucht hast?

Eine genauere Beschreibung, was du gemacht hast, könnte helfen Wink

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Themenstarter

Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.02.2011, 17:23     Titel:
  Antworten mit Zitat      
Hallo Harald!,

hach ja die Beschreibung Very Happy

ich habe einen File der auf zwei dlls zugreift.

Nun kompiliere ich diesen mit

mex file.c lib1.dll lib2.dll


Nun gibt er mir aus, dass er dlls nicht linken kann und nur die korrespondierene .lib dazuhängen.

Jetzt bin ich verwirrt, weil ich diese beiden Libs mit anderen Compilern zum laufen kriege.

Das ist mein Problem. Mit den Befehlen von dir habe ich auch schon was gemacht, habs aber irgendwie nciht hinbekommen, da es schon eine Weile her ist. Worauf mussich denn achten?

Mfg Ich

PS: Schonmal mit MinGW in Windows Matlab gemext?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.02.2011, 17:34     Titel:
  Antworten mit Zitat      
Hallo,

jetzt wird mir auch klarer, was du machen willst Smile
Dachte irgendwie an Einbindung von DLLs in MATLAB und habe mich gewundert, was das mit MEX soll.

Damit habe ich wenig Erfahrung, ich würde es lediglich auch noch mit der Option -l (siehe Doku) versuchen.

LOADLIBRARY/CALLLIB etc. sind an sich unproblematisch (Beispiel siehe Doku zu CALLLIB), aber für das Verwenden von DLLs in MATLAB gedacht.

Und nein, keine Erfahrung mit MinGW...

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Themenstarter

Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.02.2011, 17:55     Titel:
  Antworten mit Zitat      
das witzige ist ja, dass es mir was erstellt,aber der findet die entstandenen Mexfiles nicht wenn ich sie aufrufe. Das habe ich schon auf der Matlab HP, diversen C/C++ Foren und hier gepostet. Keiner weiß weiter Very Happy. Nun probiere ich mal einen anderen Weg.

Falls es klappt, setze ich gerne ein Tut hierein.

Mfg,

Ich
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Themenstarter

Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.02.2011, 19:38     Titel:
  Antworten mit Zitat      
jetz weiß ich wieder warum ich mit der loadlibrary fcn net so richtig klarkomme. Ich finde die geladene lib einfach nicht und weiß auch nciht, wie man damit weiterarbeitet. Weiß das jemand?

Mfg Ich
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.02.2011, 20:10     Titel:
  Antworten mit Zitat      
Hallo,

bitte so genau wie möglich posten, was das Problem ist.

Zitat:
aber der findet die entstandenen Mexfiles nicht wenn ich sie aufrufe

Es geht also nicht um das Erstellen des MEX-Files, sondern das anschließende Verwenden? Kann es sich um ein Pfadproblem handeln?

Zu loadlibrary: mehr als in der Dokumentation zu CALLLIB steht, kann ich dir dazu auch nicht sagen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Themenstarter

Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.02.2011, 21:03     Titel:
  Antworten mit Zitat      
hier war der thread dazu.

http://www.gomatlab.de/mex-nicht-ge.....ohl-im-ordner-t15764.html

Nein sorry, Ich meinte wie arbeitet die geladede Lib mit loadlibrary. Wie binde ich die ein, was muss ich einbinden, was muss ich linken um eine Mex draus zu basteln. Is alles ein bissel kompliziert.

Mfg Ich
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.02.2011, 21:16     Titel:
  Antworten mit Zitat      
Hallo,

Die im anderen Thread angegebene Fehlermeldung ergibt bei Google jede Menge Hits. Vielleicht findest du dort eine Lösung für das Problem.

Zitat:
Nein sorry, Ich meinte wie arbeitet die geladede Lib mit loadlibrary. Wie binde ich die ein, was muss ich einbinden, was muss ich linken um eine Mex draus zu basteln. Is alles ein bissel kompliziert.

Wie gesagt: loadlibrary ist für das direkte Einbinden von DLLs in MATLAB gedacht. Mit MEX hat das erst mal wenig zu tun.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Scriptor
Themenstarter

Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.02.2011, 01:45     Titel:
  Antworten mit Zitat      
Hallo Harald,

Leider war Google damals schon nicht sehr ergiebig. Anscheinend wird dieses Problem auch bei the Mathworks diskutiert, aber es kommt anscheinend nichts bei rum. Nun brauche ich anscheinend eine ältere Matlabversion um weiter zu arbeiten (habe 2010a). Es kann aber auch an einem .bat file liegen der entsprechend konfiguriert werden muss, aber hier hört es absolut auf. Ich hatte versucht mit gnumex MinGW als Compiler zu nutzen. An sich hat auch irgendwas funktioniert denn es kamen teilweise Fehlermeldungen vor, die einen gcc Befehl enthielten und eine Kompilierung zuließen (Mexerstellung) die das Ergebnis aber nicht finden. Langsam bin ich echt frustriert was das angeht.

Nach Einladen der dll mit load library habe ich einen Prototypen m-file erhalten, mit dem ich auch nciht klar komme. Anscheinend muss ich die Funktionen irgendwie mittels einer objekt orientierten Geschichte aufbauen, wovon ich ehrlich gesagt keinen Plan habe. Kann ich denn nicht irgendwie mit einem anderen Compiler auf die libs von Mex.h und matrix.h zugreifen und mit die Mex außerhalb von Matlab erstellen und dann dort zum laufen kriegen? Es kann doch nun wirklich nicht mehr so schwer sein, Funktionen einer bereits laufenden Bibliothek auf Win32 zum laufen zu kriegen.... MAANNN ich bin echt selten am verzweifeln aber langsam ist es soweit. Sorry dass ich mal meinen Frust rausgelassen habe.

Mit freundlichen Grüßen,

Ich
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.