|
|
DLL-Problem bei mex trotz gelinkter lib |
|
Cherup |

Forum-Anfänger
|
 |
Beiträge: 15
|
 |
|
 |
Anmeldedatum: 29.12.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 01.04.2013, 14:09
Titel: DLL-Problem bei mex trotz gelinkter lib
|
 |
|
 |
|
Hallo,
ich habe ein etwa schwerwiegenderes Problem und hoffe, dass ihr mir weiterhelfen könnt.
Ich muss über eine mex-Schnittstelle einen C++-Code ausführen, der externe Libraries und Header verwendet. Die entsprechende Library und den Ordner mit den erforderlichen Headerdateien habe ich mit dem mex-Befehl über die -L/-I Optionen gelinked. Das compilen läuft fehlerfrei, nur beim starten des Codes kommt die Fehlermeldung, dass das entprechende Modul nicht gefunden wurde. Nach ein bischen googlen habe ich erfahren, dass wohl DLLs fehlen oder nicht korrekt gelinked wurden und habe das auch mit dem Dependency Walker nachverfolgt.
Die Warnings bei mex sagen mir, dass eine DLL-Schnittstelle fehlt. Diese ist die DLL der schon gelinkten lib.
Daher meine Frage an euch: kann/muss ich die DLL der schon gelinkten Library zusätzlich linken und falls ja, wie geht das? Oder ist es ein ganz dummer Denkfehler von mir?
Viele Grüße und frohe Ostern
Cherup
_________________
Linux is like a Wigwam: no Windows, no Gates and an Apache inside
|
|
|
|
|
Theresa |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.04.2014, 19:21
Titel: Linken von dlls in mex mit PATH/mexopts; Laufzeitproblem
|
 |
|
 |
|
Diese Antwort kommt wohl etwas zu spät, aber vielleicht hilft es ja anderen weiter. Ich habe mich auch mit Matlab und mex herumgeplagt.
Bei mir ließ sich dieses Problem durch zwei Dinge beheben:
1. Änderung der System-PATH-Variable (Umgebungsvariable): Dabei muss man den Pfad zum bin-Verzeichnis, in dem die Bibliotheken liegen, hinzufügen.
2. Entsprechende Änderungen in mexopts.bat. Hier sollte man unter set LINKERFLAGS -L die Pfade zu allen verwendeten Bibliotheken angeben und unter set LINKLIBS mit -l (kleines L) alle tatsächlichen Bibliotheken einbinden. Das kann man aber auch in Matlab direkt in der Kommandozeile hinzufügen, wenn man den Compilerbefehl aufruft.
(Ich hänge mein mexopts.bat-File an.)
Das Linken funktioniert seither. Leider bringen die mex-Dateien Matlab ohne Fehlermeldungen zum Absturz. Ich möchte opencv verwenden. mex-Dateien ohne opencv funktionieren einwandfrei. Ich habe das Gefühl, dass es etwas mit den dll-Dateien zu tun hat.
Ich habe ein 64-Bit-fähiges Windows und eine 32-Bit-Version von MATLAB R2012b, auch die dlls sind 32 Bit. Es ist absolut sicher, dass es am Aufruf der Bibliotheken-Funktionen liegt, denn wenn ich all diese Funktionen herausnehme und nur Standard-Befehle benutze, ist alles okay.
Ich habe inzwischen aufgegeben. Aber wenn irgendjemand eine Idee oder ähnliche Probleme hat, wäre ich sehr dankbar für eine Antwort!!!
Beschreibung: |
Ich habe gnumex benutzt, daher der g++-Compiler |
|
 Download |
Dateiname: |
mexopts_bat.txt |
Dateigröße: |
3.31 KB |
Heruntergeladen: |
698 mal |
|
|
|
|
|
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.
|
|