Main Content

代码生成的函数调用解析

从 MATLAB® 函数,您可以调用局部函数、支持的工具箱函数和其他 MATLAB 函数。MATLAB 按如下方式为代码生成解析函数名称:

This image shows the flowchart for how MATLAB resolves function names for code generation.

函数调用解析的要点

此图说明了关于 MATLAB 如何为代码生成解析函数调用的要点:

  • 搜索两条路径,即代码生成路径和 MATLAB 路径

    请参阅编译路径搜索顺序

  • 尝试编译函数,除非代码生成器确定不应编译它们或者您显式声明它们是外部函数。

    如果代码生成不支持 MATLAB 函数,则可以使用构造 coder.extrinsic 将其声明为外部函数,如 使用 coder.extrinsic 构造 中所述。在仿真过程中,代码生成器会为外部函数的调用生成代码,但不会为函数生成内部代码。因此,仿真只能在安装了 MATLAB 软件的平台上运行。在独立代码生成过程中,代码生成器会尝试确定外部函数是否影响调用时所在函数的输出 - 例如,通过将 mxArrays 返回给输出变量。如果输出不变,将继续进行代码生成,但会从生成的代码中排除外部函数。否则,将出现编译错误。

    代码生成器可以检测到对多种常见可视化函数(如 plotdispfigure)的调用。该软件将这些函数视为外部函数,但您不需要使用 coder.extrinsic 函数将它们声明为外部函数。

  • 根据代码生成路径中文件类型的解析中描述的优先级规则解析文件类型

编译路径搜索顺序

在代码生成过程中,会在两条路径上解析函数调用:

  1. 代码生成路径

    在代码生成过程中,MATLAB 会先搜索此路径。代码生成路径包含代码生成支持的工具箱函数。

  2. MATLAB 路径

    如果函数不在代码生成路径上,MATLAB 将搜索此路径。

MATLAB 在搜索每条路径时应用相同的调度规则(请参阅 函数优先顺序)。

何时使用代码生成路径

使用代码生成路径用自定义版本覆盖 MATLAB 函数。代码生成路径上的文件会隐藏 MATLAB 路径上的同名文件。

有关如何向代码生成路径添加其他文件夹的详细信息,请参阅Paths and File Infrastructure Setup