主要内容

使用 makecfg 为 S-Function 自定义生成的联编文件

使用工具链或模板联编文件方法编译代码时,您可以为 S-Function 自定义生成的联编文件。通过自定义,您可以为 S-Function 编译过程指定附加项:

  • 源文件和文件夹

  • 包含文件和文件夹

  • 库名称

  • 预处理器宏定义

  • 编译器标志

  • 链接对象

要自定义生成的联编文件,请执行以下操作:

  1. 在包含 S-Function 组件的 S-Function MEX 文件所在的文件夹中,创建一个 makecfg.mspecificSFunction_makecfg.m 文件。如果您创建一个 makecfg.m 文件,它对于模型使用的 S-Function MEX 文件所在的文件夹中的任何 S-Function 都有效。specificSFunction_makecfg.m 文件仅在模型使用对应的 S-Function 时才有效。

  2. 在您创建的文件中,使用 RTW.BuildInfo 函数为 S-Function 编译过程指定附加项。例如,您可以使用:

    • addCompileFlags 来指定编译器选项。

    • addDefines 来指定预处理器宏定义。

  3. 保存创建的文件。

在代码生成后,在 S-Function MEX 文件所在的文件夹中,代码生成器会搜索 makecfg.mspecificSFunction_makecfg.m 文件。如果文件存在,代码生成器会使用这些文件来自定义生成的联编文件 model.mk

例如,假设在编译过程的 TLC 阶段后有一个文件夹,该文件夹包含 signalConvert.mexa64(S-Function 二进制文件)和 signalConvert.tlc(内联 S-Function 实现)。该 S-Function 需要额外的源代码文件 filterV1.c,该文件位于 anotherFolder 中。您可以创建一个文件 signalConvert_makecfg.m,它使用 RTW.BuildInfo 函数为编译过程指定 filterV1.c

function signalConvert_makecfg(objBuildInfo)

absolutePath = fullfile('$(START_DIR)', 'anotherFolder');
addSourceFiles(objBuildInfo, 'filterV1.c', absolutePath);

另请参阅

主题