Main Content

Compilador MinGW-w64

Puede utilizar el compilador MinGW-w64 para crear archivos MEX, una interfaz de MATLAB® a una biblioteca de C++ y aplicaciones con motor independiente de MATLAB y de archivos MAT. Para obtener más información, consulte MATLAB Support for MinGW-w64 C/C++ Compiler.

Instalar el compilador MinGW-w64

Para instalar el compilador, utilice el menú Complementos.

  • En la pestaña Home de MATLAB, en la sección Environment, haga clic en Add-Ons > Get Add-Ons.

  • Busque MinGW o selecciónelo en Features.

Crear el ejemplo yprime.c

Puede probar el compilador MinGW® creando el ejemplo yprime.c. Copie el archivo de origen en una carpeta con permiso de escritura.

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

Si solo tiene el compilador MinGW instalado en su sistema, el comando mex escoge automáticamente MinGW. Vaya al paso siguiente. Sin embargo, si hay varios compiladores de C o C++, utilice mex -setup para elegir MinGW.

mex -setup

Cree el archivo MEX.

mex yprime.c

MATLAB muestra el mensaje "Building with", que indica qué compilador se utilizó para crear el archivo MEX.

Ejecute la función.

yprime(1,1:4)

Para obtener más información, consulte Troubleshooting and Limitations Compiling C/C++ MEX Files with MinGW-w64.

La carpeta de instalación de MinGW no puede contener espacios

No instale MinGW en una ubicación con espacios en el nombre de la ruta. Por ejemplo, no utilice:

C:\Program Files\mingw-64

En su lugar, utilice:

C:\mingw-64

Actualizar archivos MEX para utilizar el compilador MinGW

Si tiene archivos de origen MEX creados con un compilador distinto, pero compatible con MATLAB, es posible que tenga que modificar el código para crearlos con el compilador MinGW. Por ejemplo:

  • Los archivos de biblioteca (.lib) generados por Microsoft®Visual Studio® no son compatibles con MinGW.

  • No es posible eliminar objetos cuando se genera una excepción al utilizar la función mexErrMsgIdAndTxt de archivos MEX de C++, lo que resulta en una pérdida de memoria.

  • Una excepción no detectada en archivos MEX de C++ compilados con MinGW provoca que MATLAB se bloquee.

  • Los archivos MEX con variables que contienen grandes cantidades de datos no pueden compilarse, ya que el compilador se queda sin memoria.

Temas relacionados