Frage

Ich möchte zum Öffnen einer Datei .mat Matlab C API innerhalb QT (http://www.mathworks.com/help/techdoc/matlab_external/f39876.html#bsfvqhp-1) unter Windows verwenden. In meiner .proDatei habe ich eingeschlossen INCLUDEPATH += "C:\Program Files\MATLAB\R2010b\extern\include" das funktioniert gut (der Code kompiliert). Aber wenn man versucht, die libmat.lib Datei zu verknüpfen (ich habe die DLL-Dateien lesen können nicht direkt verknüpft werden) unter Verwendung von LIBS += -L"C:\Program Files\MATLAB\R2010b\extern\lib\win32\microsoft" -llibmat stürzt die Anwendung bei der Ausführung. Der Fehler gegeben, sagt [file].exe exited with code -1073741515

Ich bin weder ein QT noch ein Windows-Experte aber für dieses Projekt ist ich beide zu verwenden gezwungen (Ich denke, es wäre einfacher, dies zu beheben in GNU / Linux) so dass jede Hilfe würde geschätzt. Mit Windows XP, QT-Version 4.7.0 mit Qt Creator 2.0.1 und Matlab R2010b.

Die letzte Ausgabe des Compilers für alle Fälle ist es sinnvoll:
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug/MainUI.exe debug/main.o debug/maingui.o debug/matparser.o debug/matutils.o debug/moc_maingui.o -L'c:/Qt/2010.05/qt/lib' -lmingw32 -lqtmaind "-LC:\Program Files\MATLAB\R2010b\extern\lib\win32\microsoft" -llibmat -lQtGuid4 -lQtCored4

War es hilfreich?

Lösung

Ich habe gerade getestet, ein einfaches C-Programm aufzubauen, die die MAT-File Interface Library . Die Beispieldatei befindet sich in: matlabroot/examples/eng_mat/matcreat.c . Ich bin mit der Zusammenstellung MinGW auf einem Windows XP 32-Bit-Rechner. Hier ist die Makefile I verwendet:

# root directory of MATLAB installation
MATLABROOT="/c/Program Files/MATLAB/R2010b"

.PHONY : all clean run

all: matcreat

matcreat:
    gcc ${MATLABROOT}/extern/examples/eng_mat/matcreat.c -o matcreat \
        -I${MATLABROOT}/extern/include \
        -L${MATLABROOT}/extern/lib/win32/microsoft -llibmat -llibmx

clean:
    rm -rf matcreat *.exe *.mat

run:
    # UNIX uses LD_LIBRARY_PATH to find libs at runtime, Windows/MinGW uses PATH
    @PATH=${MATLABROOT}/bin/win32:"${PATH}" ./matcreat

Andere Tipps

Ich vermute, dass die Matlab-Bibliothek wird mit MSVC kompiliert wurden und da Sie sagen, dass Sie Ihren eigenen Code mit MingW ich kompilieren könnte mir vorstellen, die beiden sind nicht kompatibel.

Hier finden Sie aktuelle die MingW Seite auf Misch Compiler für weitere Informationen .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top