Main Content

解决错误:代码生成不支持函数

问题

代码生成不支持某些 MATLAB® 函数。如果您尝试为这些不受支持的函数生成代码,您会看到以下错误消息:

The function <function_name> is not supported for code generation.

可能的解决方案

当代码生成器不能为指定的函数生成代码时,会出现此错误消息。如果您要为工程生成代码,请根据您的部署平台使用以下解决方法。

MEX 目标:将函数声明为外部函数

要在 MEX 中调用不受支持的函数,请在 MATLAB 代码中将该函数声明为外部函数。该函数会绕过代码生成,而改用 MATLAB 引擎来执行调用。仅当 MATLAB 引擎在 MEX 函数中可用时,此功能才可用。某些函数自动标记为外部函数,而其他函数则需要将它们作为外部函数来显式调用。要将函数声明为外部函数,请使用 coder.extrinsic。有关详细信息,请参阅使用 MATLAB 引擎在生成的代码中执行函数调用

独立目标:在 MATLAB 代码或 C/C++ 代码中手动实现函数

要为使用不支持的函数的工程生成独立代码,请手动将不支持的函数实现为代码生成或 C/C++ 代码支持的自定义 MATLAB 代码。

要使用手写 C/C++ 代码实现不受支持的功能,请使用 coder.ceval 从 MATLAB 代码内部调用此代码。然后照常为 MATLAB 入口函数生成代码。

您可以为您需要的函数找到第三方自定义 MATLAB 代码或 C/C++ 代码。

在使用第三方自定义 MATLAB 代码之前,请为代码生成 MEX 函数以验证它是否按预期执行。与第三方 C/C++ 代码类似,请验证代码或库是否按预期执行。

您还可以将 MATLAB 代码部署到支持 MATLAB Compiler™ 的平台上。编译器生成的代码不是完全独立的,因为它需要访问 MATLAB 运行时库。请参阅Write Deployable MATLAB Code (MATLAB Compiler)

请求代码生成支持

MathWorks® 不断增加对 MATLAB 内置函数和工具箱函数的 C/C++ 代码生成支持。通过填写此表单,提交为此函数添加代码生成支持的请求:请求 MATLAB 函数的代码生成支持

另请参阅

|

相关主题