Motivation

Avec la Toolbox Compiler, Mathworks propose une façon rationnelle d'utiliser leurs produits et permet aussi de diffuser une application Matlab sans la nécessité d'utiliser un jeton de licence. Ceci peut s'avérer très pratique pour des programmes fonctionnant un temps plus long ou bien pour lancer un programme sur un machine où Matlab n'est pas installé.

Principes

  • La toolbox Compiler permet de fabriquer un exécutable autonome sous Linux, Windows ou MacOSX
  • L'exécutable n'utilise aucune licence et peut donc tourner X fois sur un temps infini
  • L'exécutable peut utiliser toutes les toolbox nécessaires
  • Utiliser compiler est simple, sans connaissance spécifique de Matlab

Produire un programme Matlab peut se faire soit via l'interface graphique, soit via la ligne de commande

Par la ligne de commande

Compilez directement avec la commande mcc et fabriquez un binaire depuis votre fichier Matlab. Par exemple : mcc -m monfichier.m, ensuite il s'exécutera de la même manière (un fichier run_monfichier.sh sera associé au binaire pour pouvoir le lancer)

Exploitez la commande mcc pour générer du code C ou C++

Par l'interface graphique

Tapez deploytool dans la fenêtre de commandes Matlab :

Dans la fenêtre Deployment Tool créez un nouveau projet :

Glissez votre fichier Matlab dans le dossier Main function :

Enregistrez et cliquez sur Bluid the project :

La toute première fois, cliquez sur le texte mbuild -setup et si nécessaire éditez le fichier .matlab/MATLABVER/mbuilopts.sh :

Ensuite, dans un terminal lancez votre programme en précisant le dossier du runtime Matlab. Par exemple :

cd Documents/MATLAB/myplot/distrib/
./run_myplot.sh /Applications/MATLAB/MATLAB\_Compiler\_Runtime/v78 :

Vous pouvez utiliser le programme compilé sur n'importe quel ordinateur avec le même OS que celui utilisé pour compiler votre programme, mais vous devez déployer la bibliothèque d'exécution Matlab (runtime) associée que vous trouverez dans le sous-dossier de MATLAB :toolbox/compiler/deploy (puis maci ou maci64 pour MacOSX, glnx86 ou glnxa64 pour GNU/Linux), ou bien mcrinstaller.exe (dans Program Files\\MATLAB\\VERSION\\toolbox\\compiler\\deploy\\win32)

Ces bibliothèques permettent d'exécuter un binaire Matlab, elles sont diffusables, et doivent être diffusées avec le programme compilé.

  • Utilisez guide pour fabriquer une interface graphique pour vos programmes (beaucoup de documentation disponible sur le site de Mathworks)
  • Utilisez les routines d'entrées/sorties pour gérer les paramètres de votre programme