Hoy estuve buscando más información sobre el compilador de Matlab y descubrí que la versión de Matlab 7 que uso ya tiene incluido el compilador.
Para compilar una aplicación es súper sencillo. Hay que ubicar el directorio de trabajo de Matlab en donde están los archivos m y luego escribir el comando mcc.
>>mcc -m miprograma.m
Si es la primera vez que se usa el compilador, Matlab va a buscar en la computadora los compiladores de c y c++ que haya instalados. En mi caso me mostró las opciones LCC (compilador de Matlab) y Visual C++ 6; elegí Visual C++, pero se puede elegir el LCC también.
Al terminar la compilación aparecen 4 archivos que siguiendo este ejemplo se llamarían...
miprograma.exe
miprograma.ctf
miprograma_main.c
y otro c que no recuerdo su nombre pero que no importa
Después si se da doble click al ejecutable, se abre una ventana de ms-dos y he ahí el programa compilado.
Para compilar aplicaciones que cuentan con archivo m y archivo fig que tiene una Graphic user interface, el proceso es el mismo, solo hay que usar como parámetro el archivo m.
Ahora que ya se tiene la compilación se puede distribuir libremente solo copiando el archivo exe y el archivo ctf. Esto ayuda mucho en casos en que no se quiere compartir el código fuente del programa.
Pero hay dos tipos de máquinas en las que el programa correrá...
- La que ya tiene Matlab instalado. El programa exe correrá sin problema alguno, realmente es un stand alone.
- La que no tiene Matlab instalado. El programa no correrá porque pide muchas librerías. La solución es copiar un archivo llamado MCRInstaller.exe junto con los archivos exe y ctf. El instalador se encarga de copiar las librerías de Matlab Component Runtime para que el exe compilado funcione en cualquier máquina.
El archivo MCRInstaller está ubicado en C:\MATLAB7\toolbox\compiler\deploy\win32\MCRInstaller.exe y debe incluirse con la aplicación standalone para máquinas que no tienen matlab. Lo malo es que es un archivo muy grande, en mi caso es de 76MB; y comparándolo con la aplicación exe y ctf es inmenso, nada portátil.
Bueno, dejo esto como guía porque en internet hay tutoriales que dicen las cosas a medias, pero leyendo todos logré compilar mi aplicación.