|
|
mexen mit dlls nicht möglich? |
|
Scriptor |

Forum-Century
|
 |
Beiträge: 217
|
 |
|
 |
Anmeldedatum: 22.02.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 16:49
Titel: mexen mit dlls nicht möglich?
|
 |
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
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 16:55
Titel:
|
 |
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
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 ;)
|
|
|
Scriptor |
Themenstarter

Forum-Century
|
 |
Beiträge: 217
|
 |
|
 |
Anmeldedatum: 22.02.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 17:23
Titel:
|
 |
Hallo Harald!,
hach ja die Beschreibung
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?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 17:34
Titel:
|
 |
Hallo,
jetzt wird mir auch klarer, was du machen willst
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 ;)
|
|
|
Scriptor |
Themenstarter

Forum-Century
|
 |
Beiträge: 217
|
 |
|
 |
Anmeldedatum: 22.02.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 17:55
Titel:
|
 |
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 . Nun probiere ich mal einen anderen Weg.
Falls es klappt, setze ich gerne ein Tut hierein.
Mfg,
Ich
|
|
|
Scriptor |
Themenstarter

Forum-Century
|
 |
Beiträge: 217
|
 |
|
 |
Anmeldedatum: 22.02.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 19:38
Titel:
|
 |
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
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 20:10
Titel:
|
 |
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 ;)
|
|
|
Scriptor |
Themenstarter

Forum-Century
|
 |
Beiträge: 217
|
 |
|
 |
Anmeldedatum: 22.02.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 21:03
Titel:
|
 |
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.02.2011, 21:16
Titel:
|
 |
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 ;)
|
|
|
Scriptor |
Themenstarter

Forum-Century
|
 |
Beiträge: 217
|
 |
|
 |
Anmeldedatum: 22.02.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.02.2011, 01:45
Titel:
|
 |
|
 |
|
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
|
|
|
|
|
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.
|
|