Fehler beheben: Funktion wird von Codegenerierung nicht unterstützt
Problem
Bestimmte MATLAB®-Funktionen werden von der Codegenerierung nicht unterstützt. Wenn Sie versuchen, Code für diese nicht unterstützten Funktionen zu generieren, wird die folgende Fehlermeldung angezeigt:
The function <function_name> is not supported for code generation.
Mögliche Lösungen
Diese Fehlermeldung tritt auf, wenn der Codegenerator keinen Code für die angegebene Funktion generieren kann. Wenn Sie Code für Ihr Projekt generieren möchten, verwenden Sie je nach Ihrer Bereitstellungs-Plattform die folgenden Workarounds.
MEX-Ziel: Funktion als extrinsisch festlegen
Um die nicht unterstützte Funktion in einem MEX aufzurufen, legen Sie die Funktion in Ihrem MATLAB Programmcode als extrinsisch fest. Die Funktion umgeht die Codegenerierung und verwendet stattdessen die MATLAB-Engine, um den Aufruf auszuführen. Diese Funktion ist nur verfügbar, wenn die MATLAB-Engine in MEX-Funktionen verfügbar ist. Bestimmte Funktionen werden automatisch als extrinsisch markiert; andere Funktionen müssen von Ihnen explizit als extrinsische Funktion festgelegt werden. Um eine Funktion als extrinsische Funktion festzulegen, verwenden Sie coder.extrinsic
. Weitere Informationen finden Sie unter Use MATLAB Engine to Execute a Function Call in Generated Code.
Eigenständiges Ziel: Manuelles Implementieren der Funktion MATLAB Code oder C/C++ Code
Um eigenständigen Code für ein Projekt zu generieren, das nicht unterstützte Funktionen verwendet, implementieren Sie die nicht unterstützte Funktion als benutzerdefinierten MATLAB Programmcode, der eine Codegenerierung oder C/C++ Code unterstützt.
Um selbst geschriebenen C/C++ Code zur Implementierung der nicht unterstützten Funktion zu verwenden, rufen Sie diesen Code aus Ihrem MATLAB Programmcode mithilfe der Funktion coder.ceval
auf. Generieren Sie daraufhin wie gewohnt Code für die MATLAB-Einstiegsfunktionen.
Sie können für die erforderliche Funktion benutzerdefinierten MATLAB Programmcode oder C/C++ Code von Drittanbietern verwenden.
Bevor Sie benutzerdefinierten MATLAB Programmcode von Drittanbietern verwenden, generieren Sie eine MEX-Funktion für den Code, um dessen erwartetes Verhalten zu überprüfen. Verifizieren Sie ähnlich wie bei C/C++ Code von Drittanbietern, dass die Code oder Bibliothek sich erwartungsgemäß verhält.
Sie können zudem Ihren MATLAB Programmcode auf einer Plattform bereitstellen, die MATLAB Compiler™ unterstützt. Der vom Compiler generierte Code ist nicht vollständig eigenständig, da er Zugriff auf MATLAB Laufzeit-Bibliotheken benötigt. Siehe Write Deployable MATLAB Code (MATLAB Compiler).
Anfragen von Codegenerierungs-Unterstützung
MathWorks® fügt kontinuierlich Unterstützung für die C/C++ Codegenerierung zu eingebauten MATLAB-Funktionen und Toolbox-Funktionen hinzu. Reichen Sie über dieses Formular eine Anfrage ein, um Codegenerierungs-Unterstützung für eine Funktion anzufragen: Anfragen von Codegenerierungs-Unterstützung für MATLAB-Funktionen.
Siehe auch
Themen
- Extrinsic Functions
- Write Deployable MATLAB Code (MATLAB Compiler)