La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Résoudre l’erreur : fonction non supportée pour la génération de code
Problème
Certaines fonctions MATLAB® ne sont pas supportées pour la génération de code. Si vous tentez de générer du code pour ces fonctions non supportées, le message d’erreur suivant s’affiche :
The function <function_name> is not supported for code generation.
Solutions possibles
Ce message d’erreur survient quand le générateur de code ne peut pas générer de code pour la fonction spécifiée. Si vous souhaitez générer du code pour votre projet, utilisez les solutions de contournement suivantes en fonction de votre plateforme de déploiement.
Cible MEX : déclarer la fonction comme extrinsèque
Pour appeler la fonction non supportée dans un fichier MEX, déclarez-la comme extrinsèque dans votre code MATLAB. La fonction contourne la génération de code et utilise à la place le moteur MATLAB pour exécuter l’appel. Cette fonctionnalité n’est possible que si le moteur MATLAB est disponible dans les fonctions MEX. Certaines fonctions sont automatiquement marquées comme extrinsèques alors que d’autres doivent être explicitement appelées comme telles. Pour déclarer une fonction extrinsèque, utilisez coder.extrinsic. Pour plus d’informations, consultez Use MATLAB Engine to Execute a Function Call in Generated Code.
Cible autonome : implémenter manuellement la fonction dans le code MATLAB ou C/C++
Pour générer du code autonome pour un projet qui utilise des fonctions non supportées, implémentez manuellement ces dernières sous forme de code MATLAB personnalisé supporté pour la génération de code ou sous forme de code C/C++.
Pour utiliser du code C/C++ manuel pour implémenter les fonctionnalités non supportées, appelez-le depuis votre code MATLAB avec coder.ceval. Ensuite, générez le code pour les fonctions MATLAB de point d’entrée comme d’habitude.
Vous pouvez trouver du code MATLAB personnalisé ou C/C++ tiers pour la fonction concernée.
Avant d’utiliser du code MATLAB personnalisé tiers, générez une fonction MEX à partir de ce code pour vérifier qu’il fonctionne comme prévu. De même, avant d’utiliser du code C/C++ tiers, vérifiez que le code ou la bibliothèque fonctionne comme prévu.
Vous pouvez également déployer votre code MATLAB sur une plateforme qui supporte MATLAB Compiler™. Le code généré par le compilateur n’est pas entièrement autonome puisqu’il doit accéder aux bibliothèques run-time MATLAB. Consultez la rubrique Write Deployable MATLAB Code (MATLAB Compiler).
Demander du support pour la génération de code
MathWorks® étend continuellement le support pour la génération de code C/C++, pour les fonctions MATLAB prédéfinies et les fonctions de toolbox. Envoyez une demande de support pour la génération de code pour la fonction concernée en remplissant le formulaire suivant : Demande de support pour la génération de code pour les fonctions MATLAB.
Voir aussi
Rubriques
- Extrinsic Functions
- Write Deployable MATLAB Code (MATLAB Compiler)