Risoluzione dell'errore: funzione non supportata per la generazione di codice
Problema
Alcune funzioni di MATLAB® non sono supportate per la generazione di codice. Se si cerca di generare codice per queste funzioni non supportate, viene visualizzato questo messaggio di errore:
The function
<function_name>
is not supported for code generation.
Possibili soluzioni
Questo messaggio di errore si verifica quando il generatore di codice non può generare codice per la funzione specificata. Se si desidera generare codice per il progetto, utilizzare i seguenti accorgimenti, a seconda della piattaforma di distribuzione.
Target MEX: dichiarazione della funzione come estrinseca
Per chiamare la funzione non supportata in un MEX, dichiarare la funzione come estrinseca nel codice MATLAB. La funzione esclude la generazione di codice e utilizza invece il motore di MATLAB per eseguire la chiamata. Questa funzionalità è disponibile solo quando il motore di MATLAB è disponibile nelle funzioni MEX. Alcune funzioni sono contrassegnate automaticamente come estrinseche, mentre altre richiedono di essere chiamate esplicitamente come funzioni estrinseche. Per dichiarare una funzione come funzione estrinseca, utilizzare coder.extrinsic
. Per ulteriori informazioni, vedere Use MATLAB Engine to Execute a Function Call in Generated Code.
Target autonomo: implementazione manuale della funzione nel codice MATLAB o nel codice C/C++
Per generare codice autonomo per un progetto che utilizza funzioni non supportate, implementare manualmente la funzione non supportata come codice MATLAB personalizzato, supportato per la generazione di codice o codice C/C++.
Per utilizzare codice C/C++ scritto a mano atto a implementare le funzionalità non supportate, chiamare questo codice dall'interno del codice MATLAB utilizzando coder.ceval
. Generare quindi il codice per le funzioni del punto di ingresso di MATLAB come di consueto.
È possibile trovare codice MATLAB o codice C/C++ personalizzato di terze parti per la funzione richiesta.
Prima di utilizzare codice MATLAB personalizzato di terze parti, generare una funzione MEX per il codice per verificare che le prestazioni siano quelle previste. In modo analogo, verificare che il codice o la libreria abbiano le prestazioni previste per il codice C++ di terze parti.
È inoltre possibile distribuire il codice MATLAB su una piattaforma che supporta MATLAB Compiler™. Il codice generato dal compilatore non è completamente autonomo poiché richiede l'accesso alle librerie di runtime di MATLAB. Vedere Write Deployable MATLAB Code (MATLAB Compiler).
Richiesta di assistenza per la generazione di codice
MathWorks® continua ad ampliare l'assistenza per la generazione di codice C/C++ per le funzioni integrate di MATLAB e le funzioni della toolbox. Per richiedere l'assistenza alla generazione di codice per questa funzione, inviare una richiesta compilando questo modulo: Request Code Generation Support for MATLAB Functions (Richiesta di assistenza per la generazione di codice per le funzioni di MATLAB).
Vedi anche
Argomenti
- Extrinsic Functions
- Write Deployable MATLAB Code (MATLAB Compiler)