Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

代码生成的函数调用解析

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

函数调用解析的要点

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

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

    请参阅编译路径搜索顺序

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

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

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

  • 根据Resolution of File Types on Code Generation Path中描述的优先级规则解析文件类型

编译路径搜索顺序

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

  1. 代码生成路径

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

  2. MATLAB 路径

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

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

何时使用代码生成路径

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

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