MinGW-w64 Compiler
Sie können den MinGW-w64 Compiler verwenden, um MEX-Dateien, eine MATLAB®-Schnittstelle zu einer C++ Bibliothek und eigenständige C/C++ oder Fortran MATLAB-Engine- und MAT-Datei-Apps erstellen. Weitere Informationen finden Sie unter „MATLAB Support for MinGW-w64 C/C++/Fortran Compiler“.
Installieren des MinGW-w64 Compilers
Verwenden Sie Add-Ons Explorer, um den Compiler zu installieren.
Klicken Sie auf der Registerkarte MATLAB Home im Abschnitt Environment (Umgebung) auf Add-Ons.
Suchen Sie nach MinGW.
Erstellen eines yprime.c-Beispiels
Sie können den MinGW®-Compiler testen, indem Sie das yprime.c-Beispiel erstellen. Kopieren Sie die Quelldatei in einen beschreibbaren Ordner.
copyfile(fullfile(matlabroot,'extern','examples','mex','yprime.c'),'.','f')
Wenn Sie nur den MinGW-Compiler auf Ihrem System installiert haben, wählt der mex-Befehl automatisch MinGW aus. Fahren Sie mit dem nächsten Schritt fort. Wenn Sie jedoch mehrere C oder C++ Compiler haben, wählen Sie MinGW mit mex -setup aus.
mex -setup
Erstellen Sie die MEX-Datei.
mex yprime.c
MATLAB zeigt in der Meldung „Building with“ (Erstellen mit) an, welcher Compiler zum Erstellen der MEX-Datei verwendet wurde.
Führen Sie die Funktion aus.
yprime(1,1:4)
Weitere Informationen finden Sie unter Troubleshooting and Limitations Compiling C/C++ MEX Files with MinGW-w64.
Der MinGW-Installationsordner darf keine Leerzeichen enthalten
Installieren Sie MinGW nicht an einem Ort mit Leerzeichen im Pfadnamen. Verwenden Sie zum Beispiel nicht:
C:\Program Files\mingw-64
Verwenden Sie stattdessen:
C:\mingw-64
Aktualisieren von MEX-Dateien zur Verwendung des MinGW Compilers
Wenn Sie MEX-Quelldateien mit einem anderen von MATLAB unterstützten Compiler erstellt haben, müssen Sie den Code möglicherweise ändern, um mit dem MinGW Compiler zu arbeiten. Beispiel:
Bibliotheksdateien (
.lib), die von Microsoft® Visual Studio® erzeugt wurden, sind mit MinGW nicht kompatibel.Die Objektbereinigung ist nicht möglich, wenn eine Ausnahme mit der
mexErrMsgIdAndTxt-Funktion von C++ MEX-Dateien ausgelöst wird, was zu einem Speicherleck führt.Eine nicht abgefangene Ausnahme in C++ MEX-Dateien, die mit MinGW kompiliert wurden, führt zum Absturz von MATLAB.
MEX-Dateien mit Variablen, die große Datenmengen enthalten, können nicht kompiliert werden, da dem Compiler der Speicherplatz nicht ausreicht.