主要内容

本页采用了机器翻译。点击此处可查看英文原文。

使用 MATLAB Compiler 进行部署的步骤

您可以使用 MATLAB® Compiler™MATLAB Compiler SDK™ 将 MATLAB 文件打包为不需要 MATLAB 运行的可部署组件。

使用 MATLAB Compiler,您可以创建独立应用程序、Web App、Microsoft® Excel® 加载项以及 MapReduce 或 Spark™ 大数据应用程序。

使用 MATLAB Compiler SDK,您可以创建 C/C++ 共享库、.NET 程序集、Java® 类、Python® 包、COM 组件、MATLAB Production Server™ 可部署存档、MATLAB Production Server 的 Excel 加载项以及基于 Docker® 容器的微服务。

编写可部署的 MATLAB 代码

要将 MATLAB 脚本、函数或类文件打包以在 MATLAB 环境之外运行,您必须首先确保代码处于完成状态并准备好由最终用户运行。您可以使用 isdeployed 等函数来分离部署前必须运行的代码。例如,在已部署的应用程序中,MATLAB 路径是固定的且无法更改,因此使用 isdeployed 分离出修改路径的代码。有关详细信息,请参阅编写可部署的 MATLAB 代码

除了 MATLAB 脚本、MEX 文件和类文件之外,您还可以在编译的工件中包含其他类型的文件,例如数据文件。有关详细信息,请参阅在打包的应用程序中包含和访问文件

打包用于目标的代码

在打包过程中,编译器执行以下步骤:

  1. 使用依赖关系分析函数来包含必要的支持文件。有关详细信息,请参阅使用 MATLAB Compiler 进行依赖关系分析

  2. 验证 MEX 文件。特别是,mexFunction 入口点已经过验证。有关在打包应用程序中包含 MEX 文件的更多详细信息,请参阅在打包的应用程序中包含和访问文件

  3. 从输入文件及其依赖项创建可部署的存档。有关详细信息,请参阅关于可部署存档

  4. 生成特定于目标的包装器代码。

  5. 生成特定于目标的二进制包。

    对于 C++ 共享库、Java 包或 .NET 程序集等库目标,编译器会调用相应的第三方编译器。

您可以使用以下选项来打包 MATLAB 代码。

  • compiler.buildcompiler.package 函数,允许您在命令行中打包 MATLAB 代码

  • 编译器 App,允许您使用图形界面打包 MATLAB 代码。

  • mcc 函数,允许您在命令行中打包 MATLAB 代码,并提供其他选项来控制打包过程

有关这些打包方法的详细信息,请参阅选择部署选项

部署前测试工件

您可以使用 MATLAB 安装代替 MATLAB Runtime 来测试由 MATLAB CompilerMATLAB Compiler SDK 生成的工件。通常,测试使用与生成工件相同的 MATLAB 安装进行。用于测试的 MATLAB 版本必须与创建工件时使用的版本匹配。有关部署前测试的更多信息,请参阅 设置 MATLAB 库路径以测试已部署的应用程序

测试成功后,您可以将工件转移到生产环境,并使用 MATLAB Runtime 运行它。

将文件分发至目标平台

创建组件后,您可以手动分发应用程序文件,或者分发一个包含在目标平台上运行应用程序所需所有资源的安装程序。

分发应用程序安装程序

您可以使用编译器应用程序或 compiler.package.installer 函数来创建应用程序安装程序。由 MATLAB Compiler 创建的安装程序包含您生成的构建产物、任何生成的示例代码,以及(可选)运行指定应用程序所需的 MATLAB Runtime 库。

要创建可运行一个或多个特定 MATLAB Compiler 应用程序的最小 MATLAB Runtime 安装程序,请参阅 compiler.runtime.customInstaller (自 R2024b 起)

若要使用 compiler.package.installercompiler.runtime.customInstaller 创建包含 MATLAB Runtime 的安装程序,您必须下载完整的 MATLAB Runtime 安装程序,且其版本更新级别应与用于创建安装程序的 MATLAB 版本一致。然后,在 MATLAB Compiler 下的设置中指定安装程序的位置。您可以使用 compiler.runtime.download 函数获取与您的 MATLAB 安装版本和更新级别相同的 MATLAB Runtime 安装程序。

手动分发文件

对于 MATLAB Compiler 目标,您可以直接分发应用程序文件或可部署的存档文件以进行部署。如果您手动分发文件,请确保目标计算机可以访问的 MATLAB Runtime 版本与用于编译组件的 MATLAB 版本相同或更高。

有关应向应用程序开发人员分发哪些文件的详细信息(针对 MATLAB Compiler SDK 目标),请参阅 将 MATLAB Compiler SDK 文件分发给应用程序开发人员。将该组件集成到目标语言应用程序中,并在 MATLAB Runtime 上测试应用程序代码后,请将应用程序连同所有必需的文件和依赖项一起分发到最终用户计算机上。

将工件与目标语言应用程序集成

如果您使用 MATLAB Compiler SDK 来封装 MATLAB 函数,以便在其他编程语言(如 .NET 或 Python)编写的应用程序中使用,则必须使用目标语言编写应用程序代码,以调用已封装的 MATLAB 功能。有关详细信息,请参阅将工件与目标语言应用程序集成

安装 MATLAB Runtime

MATLAB Runtime 是一组免费提供的共享库,使您无需许可版本的 MATLAB 即可运行打包的 MATLAB 代码。有关详细信息,请参阅 关于 MATLAB Runtime

如果您使用包含已编译工件和 MATLAB Runtime 的安装程序,则 MATLAB Runtime 将与应用程序或共享库一起安装。如果您手动分发文件,请确保目标计算机可以访问的 MATLAB Runtime 版本与用于编译组件的 MATLAB 版本相同或更高。

您可以在开发计算机上使用 MATLAB 测试已部署的组件,而无需 MATLAB Runtime

限制和约束

您可以封装大多数可直接从命令行调用的 MATLAB 功能,但也有一些例外,例如预先构建的图形用户界面。有关详细信息,请参阅MATLAB Compiler 的限制

编译后的应用程序只能在开发它的平台上运行,但有一些例外。有关多平台开发的最佳做法信息,请参阅 确保编译应用程序的多平台兼容性

另请参阅

| | |

主题