主要内容

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

C++ 共享库编译器

MATLAB 程序打包以便作为 C++ 共享库进行部署

自 R2025a 起

说明

C++ 共享库编译器将 MATLAB® 程序打包为 C++ 共享库,您可以将这些库集成到 C++ 应用程序中。编译器 App 中使用的交互式菜单和对话框构建根据您的设定定制的 compiler.build 命令。

编译器 App 的优点包括:

  • 可以使用单个直观的界面执行部署任务。

  • 可以在 MATLAB 工程中组织文件。

  • 您的工程状态在会话之间是持续的。

  • 您可以从预填充的菜单加载以前存储的编译器任务。

  • 您可以为应用程序打包一个安装程序以便分发。

有关详细信息,请参阅针对特定目标的编译器,用于 MATLAB 代码部署

打开 C++ 共享库编译器 App

  • MATLAB 工具条:在 App 选项卡上的应用程序部署下,点击 App 对应的图标。

  • MATLAB 命令提示符:输入 cppSharedLibraryCompiler

参数

全部展开

导出的函数

实现 MATLAB 函数的文件。文件必须具有以下扩展名之一:.m.p.mlx.mexa64

所有文件必须位于工程根文件夹中才能添加到工程中。若要将 MATLAB 函数添加到可部署存档中,请点击添加导出的函数并选择您的 MATLAB 文件。在“工程”面板中,您所选的文件会显示为 DesignExported Function File

库信息

生成的 C++ 共享库的名称。

库的版本号。

库作者的姓名。

库作者的电子邮件地址。

创建该库的公司名称。

库的摘要描述,指定为字符向量或字符串标量。

库的详细描述,指定为字符向量或字符串标量。

输出位置

生成构建产物的文件夹路径。

安装程序生成的文件夹路径。

  • 如果启用此属性,则编译后的构建产物中将包含调试符号信息。此选项还会使 mbuild 将相应的调试标志传递到系统编译器。通过调试选项,您可以回溯到能够确定故障是发生在 MATLAB Runtime 初始化、函数调用还是终止例程中的时间点。此选项不允许您使用外部调试器调试 MATLAB 文件。

  • 如果禁用此属性,则不会包含调试符号。这是默认选项。

编译设置

在可部署的存档文件中混淆处理文件夹结构、文件名和用户代码。

如果启用此属性,则可部署存档中的文件夹结构和文件名将被混淆处理,且包含在 .m.mlapp.p.mat、MLX、SFX 和 MEX 文件中的用户代码和数据将被放置到存档内的用户包中。另外,所有 .m 文件在打包前会转换为 P 文件。

在运行时,系统会从用户包直接解密和加载 MATLAB 代码和数据,而不是将其提取到文件系统。在加载之前,系统会从用户包中临时提取 MEX 文件。

要在用户包中手动包含其他文件类型,请将每种文件类型以单独的扩展标记的形式添加到文件 matlabroot/toolbox/compiler/advanced_package_supported_files.xml 中。

以下内容受支持:

  • ver 函数

  • 调用外部库,例如 DLL

  • 进程外 MATLAB Runtime(用于 MATLAB Data Array 的 C++ 共享库)

  • 进程外 MEX 文件执行(mexhostfevalmatlab.mex.MexHost

  • 在 R2023b 之前的版本中: v7.3 之外的 .mat 文件

启用此选项等效于在指定了 -j-s 的情况下使用 mcc

如果未启用此属性,则可部署的存档文件将不会进行混淆处理。这是默认行为。

库运行所需的文件

需包含在可部署存档文件中的支持包。依赖关系分析过程会自动检测并包含所需的支持包。仅包含指定的支持包。要列出已安装的支持包或特定文件使用的那些支持包,请参阅 compiler.codetools.deployableSupportPackages

要包含在可部署存档中的其他文件和文件夹。要添加文件夹中的内容,请点击添加文件夹。要添加单个文件,请点击添加文件

要包含在可部署存档中的附加文件。除非禁用了自动包含作为函数 (如 load 和 fopen) 输入的数据文件,否则依赖关系分析过程会自动检测并包含所需的数据文件。

要查看文件分析结果,请点击查看分析。要重新执行依赖关系分析过程,请点击重新分析

将数据文件自动包含在可部署的存档文件中。

  • 如果启用此属性,则作为某些函数(例如 loadfopen)输入提供的数据文件将自动包含在可部署的存档文件中。这是默认选项。

  • 如果禁用此属性,则必须在自定义需求部分向包中添加数据文件。

示例

生成并修改示例 MATLAB 文件,这些文件会被编译成 Java® 代码,用于演示如何在目标语言中调用 MATLAB 导出函数。

对于打包期间包含的每个 MATLAB 示例文件,都会在名为 samples 的文件夹中生成一个目标语言的示例应用程序。这些示例也包含在安装程序中。

若要上传您已编写的 MATLAB 脚本,请点击添加现有示例

要生成一个新的 MATLAB 样本文件,请点击创建新示例。这将打开一个 MATLAB 脚本供您编辑。打包后,生成的示例代码使用与示例 MATLAB 脚本中相同的参量调用您导出的函数。

有关详细信息,请参阅创建示例代码来调用导出函数

C++ API 选择

C++ API 选择部分,选择用于在 C++ 应用程序与 MATLAB 函数之间交换数据的 API。

  • 创建使用 MATLAB Data API for C++ 的接口

  • 创建使用 mwArray API for C++ 的接口

选择 C++ 部署选项归根结底在于了解每个选项的功能并认识到这些功能如何与您的开发要求相符。这两种选项都提供了一套全面的 API,用于处理应用程序管理和数据操作。MathWorks® 建议使用更现代的 MATLAB Data API,而非 mwArray API。有关详细信息,请参阅选择 C++ 部署选项

安装程序详细信息

MATLAB Runtime 交付选项,指定为以下选项之一。

  • 在应用程序安装过程中从 mathworks.com 下载 MATLAB Runtime - 安装程序在应用程序安装过程中从 MathWorks 网站下载 MATLAB Runtime 的选项。此选项是默认行为。

  • 在应用程序安装程序中包含 MATLAB Runtime 以支持脱机安装 - 此选项可在安装程序中包含 MATLAB Runtime,以便在安装应用程序时无需连接到 MathWorks 网站即可完成安装。如果您认为最终用户可能无法访问互联网,请使用此选项。

  • 请勿在应用程序安装程序中包含 MATLAB Runtime - 此选项用于在安装应用程序时不安装 MATLAB Runtime。如果您认为最终用户将使用其他方法安装 MATLAB Runtime,请使用此选项。 (自 R2024a 起)

注意

如果您使用提取包含选项,则会安装完整的 MATLAB Runtime若要创建一个可运行一个或多个特定 MATLAB Runtime 应用程序的简易 MATLAB Runtime 安装程序,请参阅 compiler.runtime.customInstaller (自 R2024b 起)

生成的安装程序的名称。

应用程序的安装路径。该文件夹位于目标计算机的 %ProgramFiles% 文件夹中。

关于使用本应用程序的附加要求说明。

用作安装程序启动画面的图像文件,指定为字符向量或字符串标量。启动画面图标大小将调整为 400 像素 x 400 像素。

用作安装程序图标的图像文件。

用作安装程序徽标的图像文件,指定为字符向量或字符串标量。该徽标将调整大小为 112 像素 x 290 像素。

版本历史记录

在 R2025a 中推出

全部展开