Contenuto principale

Compiler MinGW-w64

È possibile utilizzare il compiler MinGW-w64 per costruire file MEX, un'interfaccia di MATLAB® a una libreria C++ e applicazioni autonome MATLAB Engine e file MAT in C/C++ o Fortran. Per maggiori informazioni, vedere "MATLAB Support for MinGW-w64 C/C++/Fortran Compiler" ("Supporto MATLAB per il compiler MinGW-w64 C/C++/Fortran").

Installazione del compiler MinGW-w64

Per installare il compiler, utilizzare Add-Ons Explorer.

  • Nella scheda MATLABHome, nella sezione Environment, fare clic su Add-Ons.

  • Cercare MinGW.

Costruzione dell'esempio yprime.c

È possibile testare il compiler MinGW® costruendo l'esempio yprime.c. Copiare il file sorgente in una cartella scrivibile.

copyfile(fullfile(matlabroot,'extern','examples','mex','yprime.c'),'.','f')

Se sul sistema è installato solo il compiler MinGW, il comando mex sceglie automaticamente MinGW. Andare al passaggio successivo. Tuttavia, se si dispone di più compilatori C o C++, utilizzare mex -setup per scegliere MinGW.

mex -setup

Costruire il file MEX.

mex yprime.c

MATLAB visualizza un messaggio "Building with" (Costruito con) che mostra quale compiler è stato utilizzato per costruire il file MEX.

Eseguire la funzione.

yprime(1,1:4)

Per maggiori informazioni, vedere Troubleshooting and Limitations Compiling C/C++ MEX Files with MinGW-w64.

Spazi non consentiti nella cartella di installazione di MinGW

Non installare MinGW in una posizione dove sono presenti spazi nel nome del percorso. Ad esempio, non utilizzare:

C:\Program Files\mingw-64

Utilizzare invece:

C:\mingw-64

Aggiornamento dei file MEX per utilizzare il compiler MinGW

Se si dispone di file sorgente MEX creati con un compiler diverso da quello supportato da MATLAB, potrebbe essere necessario modificare il codice per poterlo costruire con il compiler MinGW. Ad esempio:

  • I file (.lib) della libreria generati da Microsoft® Visual Studio® non sono compatibili con MinGW.

  • La pulizia degli oggetti non può essere eseguita quando viene generata un'eccezione utilizzando la funzione mexErrMsgIdAndTxt dai file MEX C++, causando una perdita di memoria.

  • Un'eccezione non rilevata nei file MEX C++ compilati con MinGW causa un arresto anomalo di MATLAB.

  • I file MEX con variabili contenenti grandi quantità di dati non possono essere compilati, poiché il compiler esaurisce la memoria.

Vedi anche

Argomenti