MinGW-w64 Compiler
Vous pouvez utiliser le MinGW-w64 Compiler pour construire des fichiers MEX, une interface MATLAB® vers une bibliothèque C++ et des applications de fichiers MAT et Engine MATLAB Fortran ou C/C++ autonomes. Pour plus d’informations, consultez « MATLAB Support for MinGW-w64 C/C++/Fortran Compiler ».
Installer le MinGW-w64 Compiler
Pour installer le compilateur, utilisez le menu Add-Ons.
Accédez à l’onglet MATLABHome et dans la section Environment, cliquez sur Add-Ons > Get Add-Ons.
Recherchez MinGW ou sélectionnez-le à partir de Features.
Construire l’exemple yprime.c
Vous pouvez tester le MinGW® Compiler en construisant l’exemple yprime.c. Copiez le fichier source dans un dossier accessible en écriture.
copyfile(fullfile(matlabroot,'extern','examples','mex','yprime.c'),'.','f')
Si vous n’avez que le MinGW Compiler installé sur votre système, la commande mex choisit automatiquement MinGW. Passez à l’étape suivante. Cependant, si vous avez plusieurs compilateurs C ou C++, utilisez mex -setup pour choisir MinGW.
mex -setup
Construisez le fichier MEX.
mex yprime.c
MATLAB affiche un message « Building with » pour montrer quel compilateur a été utilisé pour construire le fichier MEX.
Exécutez la fonction.
yprime(1,1:4)
Pour plus d’informations, consultez Troubleshooting and Limitations Compiling C/C++ MEX Files with MinGW-w64.
Le dossier d’installation MinGW ne peut pas contenir d’espace
N’installez pas MinGW à un emplacement ayant des espaces dans le nom de chemin. Par exemple, n’utilisez pas :
C:\Program Files\mingw-64
Utilisez plutôt :
C:\mingw-64
Mettre à jour des fichiers MEX pour utiliser le MinGW Compiler
Si vous avez des fichiers sources MEX construits avec un compilateur différent que MATLAB supporte, vous devrez peut-être modifier le code pour construire avec le MinGW Compiler. Par exemple :
Les fichiers de bibliothèque (
.lib) générés par Microsoft®Visual Studio® ne sont pas compatibles avec MinGW.Le nettoyage des objets n’est pas possible quand une exception est provoquée en utilisant la fonction
mexErrMsgIdAndTxtà partir des fichiers MEX C++, ce qui produit une fuite de mémoire.Une exception non interceptée dans des fichiers MEX C++ compilés avec MinGW entraîne une panne MATLAB.
Les fichiers MEX avec des variables contenant de grandes quantités de données ne peuvent pas être compilés, puisque le compilateur n’a plus de mémoire.