IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ MATLAB

FAQ MATLABConsultez toutes les FAQ

Nombre d'auteurs : 11, nombre de questions : 172, dernière mise à jour : 29 septembre 2022 

 
OuvrirSommaireApplications déployées exécutables sans MATLAB

Cette solution n'est valable qu'à partir de la version 7.0 (R14) de MATLAB.
(voir Comment trouver le numéro de la version de MATLAB installée sur ma machine ?)

Avant de se lancer dans la création de l'exécutable, vous avez impérativement besoin de deux choses :

Une fois ces vérifications faites, vous devez encore spécifier le compilateur à utiliser à MATLAB.
Pour ce faire, voir Comment choisir le compilateur à utiliser pour créer un exécutable ?

Vous avez maintenant deux possibilités pour créer un exécutable :

Pour illustrer le propos, nous allons utiliser l'exemple du carré magique fourni avec MATLAB.

Copiez le fichier magicsquare.m dans le dossier de votre choix avec la commande suivante :

 
Sélectionnez
copyfile(fullfile(matlabroot, 'extern', 'examples', 'compiler', 'magicsquare.m'), '<chemin du dossier>')

Vérifiez bien que le dossier courant de MATLAB est celui contenant le fichier que vous venez de copier.

- Pour créer l'exécutable en ligne de commande, il suffit alors de taper :

 
Sélectionnez
mcc -m magicsquare

- Pour afficher les informations sur les différentes étapes de la création de l'exécutable, vous pouvez aussi spécifier en plus l'argument -v comme ceci :

 
Sélectionnez
mcc -mv magicsquare

- Pour créer l'exécutable à partir du Deployment Tool, vous devez d'abord ouvrir ce dernier comme ceci :

 
Sélectionnez
deploytool

Vous trouverez le reste de la procédure pour utiliser cet outil graphique dans cette démo.

En cas de réussite, l'une ou l'autre des méthodes créent un exécutable que vous pouvez tester dans un terminal DOS ou UNIX ou, si vous avez installé le MCR sur votre machine (voir Que faut-il installer sur l'ordinateur où l'exécutable est déployé ?), directement depuis le prompt MATLAB en faisant précéder le nom de l'exécutable du caractère « ! » ou en utilisant la fonction systemDocumentation de la fonction system.

Dans tous les cas, vous obtiendrez le même résultat en lançant l'exécutable sous MATLAB :

 
Sélectionnez
>> !magicsquare 4
 
m = 
 
    16     2     3    13 
     5    11    10     8 
     9     7     6    12 
     4    14    15     1 
 
>> system('magicsquare 4');
 
m = 
 
    16     2     3    13 
     5    11    10     8 
     9     7     6    12 
     4    14    15     1

ou dans une fenêtre de commande (ici DOS) :

Image non disponible
Mis à jour le 28 octobre 2012  par Aurélien Queffurust, Jérôme Briot

La liste des compilateurs supportés par la dernière version du MATLAB Compiler est disponible dans la troisième colonne de ce tableau : Supported and Compatible Compilers.

Pour les versions plus anciennes, voir la colonne de droite de ce tableau : System Requirements and Supported Compilers - Previous Releases.

Créé le 28 octobre 2012  par Jérôme Briot

Pour choisir le compilateur à utiliser parmi la liste des compilateurs installés, il faut utiliser la commande suivante :

 
Sélectionnez
mbuild -setup

En fonction du système d'exploitation et de votre configuration, MATLAB affiche alors des menus de choix.

- Sous Windows

 
Sélectionnez
Please choose your compiler for building standalone MATLAB applications: 
 
Would you like mbuild to locate installed compilers [y]/n?

Appuyez sur la touche [Entrée] ou sur la touche [y] de votre clavier pour laisser MATLAB chercher et lister les compilateurs.

Si aucun compilateur n'est listé, voir Quels sont les différents compilateurs supportés pour créer un exécutable ?.

- Sous Linux

 
Sélectionnez
>> mbuild -setup

    Options files control which compiler to use, the compiler and link command
    options, and the runtime libraries to link against.

    Using the 'mbuild -setup' command selects an options file that is
    placed in ~/.matlab/R2009a and used by default for 'mbuild'. An options 
    file in the current working directory or specified on the command line 
    overrides the default options file in ~/.matlab/R2009a.
 
    To override the default options file, use the 'mbuild -f' command
    (see 'mbuild -help' for more information).

The options files available for mbuild are:

  1: /usr/local/MATLAB/R2009a/bin/mbuildopts.sh : 
      Build and link with MATLAB Compiler generated library via the system ANSI C/C++ compiler
 

  0: Exit with no changes

Enter the number of the compiler (0-1):
Créé le 28 octobre 2012  par Jérôme Briot

Pour porter votre exécutable sur une machine où MATLAB n'est pas installé, il faut installer dans l'ordre :

  1. Le MATLAB Component Runtime (MCR) ;
  2. L'exécutable créé avec le MATLAB Compiler.

Pour les versions antérieures à la R2008a, il faut aussi fournir le fichier .ctf avant de lancer l'exécutable.

Vous trouverez l'exécutable du MCR dans le sous-dossier « toolbox/compiler/deploy/<arch> » du dossier d'installation de MATLAB.
<arch> est un nom de dossier qui est fonction de votre système d'exploitation et de votre architecture (win32, win64…).

Pour déployer une application en réseau sans que tous les utilsateurs aient à installer le MCR sur leur machine : How do I deploy my compiled stand-alone application on a network drive so that it can be accessed by all network users without having to install MATLAB Component Runtime (MCR) on all client computers?

Mis à jour le 28 octobre 2012  par Aurélien Queffurust, Jérôme Briot

Lien : What libraries should I include when distributing my stand-alone application?

Non, le but du MATLAB Compiler est de créer un exécutable qui puisse fonctionner sur une machine où MATLAB n'est pas installé.

Créé le 27 mai 2007  par Aurélien Queffurust

Lien : Does the MATLAB Compiler speed up the execution time of MATLAB functions?

Non, c'est le rôle d'une autre Toolbox, le MATLAB Coder.

Le MATLAB Compiler ne fait qu'envelopper le code MATLAB dans du code C.

C'est la raison pour laquelle il est nécessaire d'installer le MATLAB Component Runtime (MCR) sur la machine où sera déployée l'application.

Mis à jour le 28 octobre 2012  par Aurélien Queffurust, Jérôme Briot

Lien : How can I convert my M-code to C code?

A partir de la version R2007b de MATLAB (et seulement sous Windows), il est possible de supprimer la fenêtre DOS qui apparaît à l'exécution du code déployé. Il suffit d'utiliser l'option -e à la place de l'option -m avec la fonction mccDocumentation de la fonction mcc :

 
Sélectionnez
mcc -e …

Cette méthode fonctionne avec tous les compilateurs, sauf celui fourni avec MATLAB, c'est à dire Lcc.

Pour les versions antérieures à la R2007b, il est seulement possible de minimiser la fenêtre DOS dans la barre des tâches.

Mis à jour le 5 mars 2008  par Aurélien Queffurust

Lien : -e Suppress MS-DOS Command Window
Lien : How do I keep the DOS window from appearing when launching a MATLAB stand-alone program?

Non. Si vous créez un exécutable sous Windows il ne fonctionnera que sous Windows. Pour qu'il fonctionne sous Unix, il faut utiliser le MATLAB Compiler sous Unix et recréer un exécutable (et vice-versa).

Créé le 27 mai 2007  par Aurélien Queffurust

Non

Il est inutile, par exemple, de taper :

 
Sélectionnez
mcc -mv fichier1.m fichier2.m fichier3.m

Si votre programme principal est fichier1, alors la commande suivante suffit :

 
Sélectionnez
mcc -mv fichier1

Le MATLAB Compiler trouve lui-même les dépendances entre les M-files.

Créé le 27 mai 2007  par Aurélien Queffurust

Lien : Is there a convenient way to compile my application using the MATLAB Compiler when my project involves numerous MATLAB files?

La majorité des fonctions MATLAB sont bien prises en charge par le MATLAB Compiler et peuvent donc être utilisées dans des applications déployées. Néanmoins, il existe un certain nombre de fonctions que vous ne pourrez pas utiliser.

Liste des fonctions non supportées (MATLAB et Toolbox) : MATLAB Compiler - Support for MATLAB and Toolboxes

Plus spécifiquement pour MATLAB : MATLAB Functions That Cannot Be Compiled

Mis à jour le 28 octobre 2012  par Caro-Line

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007-2017 Developpez LLC Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.