Hauptinhalt

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.

Siehe auch

Themen