主要内容

使用示例主函数合并生成的代码

当您编译使用生成的 C/C++ 代码的应用程序时,必须提供调用生成的代码的 C/C++ 主函数。

默认情况下,对于 C/C++ 源代码、静态库、动态库和可执行文件的代码生成,MATLAB® Coder™ 会生成示例 C/C++ 主函数。此函数是可以帮助您将生成的 C/C++ 代码合并到应用程序中的模板。示例主函数声明和初始化数据,包括动态分配的数据。它会调用入口函数,但不使用入口函数返回的值。

MATLAB Coder 在编译文件夹的 examples 子文件夹中生成示例主函数的源文件和头文件。对于 C 代码生成,它会生成 main.cmain.h 文件。对于 C++ 代码生成,它会生成 main.cppmain.h 文件。

不要修改 examples 子文件夹中的 main.cmain.h 文件。如果修改这些文件,则当您重新生成代码时,MATLAB Coder 不会重新生成示例主文件。它会发出警告,提示检测到生成文件发生了更改。在使用示例主函数之前,将示例主函数源文件和头文件复制到编译文件夹以外的某个位置。修改新位置的文件以满足您的应用程序的要求。

packNGo 函数和 MATLAB Coder 中的导出 > 将生成的代码打包为 ZIP 文件按钮在使用默认配置设置生成文件时不会打包示例主函数源文件和头文件。要打包示例主文件,请配置代码生成以生成和编译示例主函数,生成代码,然后打包编译文件。

使用示例主函数的工作流

  1. 准备您的 MATLAB 代码以进行代码生成。

  2. 检查是否存在运行时问题。

  3. 确保启用了生成示例主函数的功能。

  4. 生成入口函数的 C/C++ 代码。

  5. 将示例主文件从 examples 子文件夹复制到另一个文件夹。

  6. 修改新文件夹中的示例主文件以满足应用程序的要求。

  7. 针对所需的平台部署示例主函数和生成的代码。

  8. 编译应用程序。

有关如何生成示例主函数并使用它编译可执行文件的示例,请参阅在应用程序中使用示例 C 主函数

使用 MATLAB Coder 控制示例主函数生成

要指示代码生成器生成独立代码,请在工具条的 MATLAB Coder 选项卡中,点击输出类型并选择静态库(.lib)动态库(.dll)可执行文件(.exe)

点击设置以打开“代码生成设置”对话框。下表显示如何为不同代码生成器行为设置生成示例主函数参数。

设置代码生成器行为
不生成示例主函数 不生成示例 C/C++ 主函数。
生成但不编译示例主函数生成示例 C/C++ 主函数,但不编译它。这是默认行为。
生成并编译示例主函数生成示例 C/C++ 主函数并编译它

使用命令行界面控制示例主函数生成

在独立代码配置对象中,设置 GenerateExampleMain 属性。下表显示如何为不同代码生成器行为设置 GenerateExampleMain 属性。

设置代码生成器行为
'DoNotGenerate' 不生成示例 C/C++ 主函数。
'GenerateCodeOnly'生成示例 C/C++ 主函数,但不编译它。这是默认行为。
'GenerateCodeAndCompile'生成示例 C/C++ 主函数并编译它。

例如,为 'lib''dll''exe' 创建代码配置对象。然后,指示代码生成器生成示例 C/C++ 主函数,但不编译它。

cfg.GenerateExampleMain = 'GenerateCodeOnly';
cfg = coder.config('lib'); % or dll or exe

注意

在 Windows® 中,当选择 Generate and compile an example main function 或将 cfg.GenerateExampleMain 设置为 GenerateCodeAndCompile 时,会在用于 dlllib 代码生成的当前工作目录中生成一个 Windows 可执行批处理文件 (.bat),而不是 .exe 文件。您可以修改 examples 文件夹中的 main.cmain.h 文件以满足应用程序的要求。

另请参阅

主题