使用 MATLAB Data API (C++11) 部署到 C++ 应用程序
使用 MATLAB® Data API 将打包的 MATLAB 函数集成到 C++ 应用程序中
在这种方法中,您先使用 MATLAB Compiler SDK™ 中的功能来生成包含 MATLAB 函数的代码存档(.ctf 文件),以及建立 MATLAB 数据类型与 C++ 数据类型之间映射的头文件(.hpp 文件)。然后,将它们集成到您的 C++ 应用程序中。
使用 MATLAB Compiler SDK API for C++ 作为 C++ 应用程序与包含部署的 MATLAB 函数的代码存档之间的接口。使用 MATLAB Data API 处理 C++ 应用程序与部署的 MATLAB 函数之间的数据交换。有关数据交换的详细信息,请参阅 MATLAB Data API for C++。
为了确保这是适合您的正确方法,请参阅选择 C++ 部署选项。
必须在运行 C++ 应用程序的计算机上安装并设置 MATLAB Runtime。有关详细信息,请参阅下载并安装 MATLAB Runtime。
App
| C++ 共享库编译器 | 将 MATLAB 程序打包为 C++ 共享库以供部署 (自 R2025a 起) |
函数
compiler.build.cppSharedLibrary | 创建 C++ 共享库 (自 R2021a 起) |
compiler.build.CppSharedLibraryOptions | 构建 C++ 共享库的选项 (自 R2021a 起) |
compiler.build.Results | 编译器编译结果对象 |
mbuild | 结合 MATLAB 生成的共享库编译并链接源代码文件 |
mcc | 编译要部署的 MATLAB 函数 |
C/C++ API
matlab::cpplib::initMATLABApplication | 启动 MATLAB Runtime 并初始化其应用程序状态 |
matlab::cpplib::runMain | 在主函数中使用输入参量执行函数 |
matlab::cpplib::convertUTF8StringToUTF16String | 将 UTF-8 字符串转换为 UTF-16 字符串 |
matlab::cpplib::convertUTF16StringToUTF8String | 将 UTF-16 字符串转换为 UTF-8 字符串 |
matlab::cpplib::initMATLABLibrary | 初始化可部署存档文件中打包的 MATLAB 函数库 |
matlab::cpplib::initMATLABLibraryAsync | 异步初始化 MATLAB 函数库 |
matlab::cpplib::MATLABLibrary::feval | 从可部署存档中执行 MATLAB 函数 |
matlab::cpplib::MATLABLibrary::fevalAsync | 从可部署存档异步执行 MATLAB 函数 |
matlab::cpplib::MATLABLibrary::waitForFiguresToClose | 等待所有图窗关闭 |
主题
要求
- MATLABCompiler SDK C++ 目标要求
查看使用 MATLAB Compiler SDK 将 MATLAB 函数部署到 C++ 应用程序的软件要求。 - 设置 C++开发环境
设置开发环境以开发集成已部署的 MATLAB 函数的 C++ 应用程序。 - 下载并安装 MATLAB Runtime
安装、配置和卸载 MATLAB Runtime。 - 选择 C++ 部署选项
探索 MATLAB Compiler SDK 提供的 C++ 部署选项,并根据您的特定 C++ 集成需求选择合适的选项。 - MATLAB Compiler SDK C++ API 摘要
探索各种 MATLAB Compiler SDK C++ API。
创建和集成
- 使用 MATLAB Data API 将 MATLAB 函数部署到 C++ 应用程序
了解如何使用 MATLAB Data API 将 MATLAB 函数部署到 C++ 应用程序。 - 使用 C++ 共享库编译器,通过 MATLAB 数据 API 调用 MATLAB 函数。
使用 C++ 共享库编译器创建一个 C++ MATLAB 数据共享库。(自 2025a 起) - 生成 C++ MATLAB Data API 共享库并编译 C++ 应用程序
从 MATLAB 代码创建 C++ MATLAB Data API 共享库,并将其与 C++ 示例驱动代码集成。 - 将 C++ 结构传递给已部署的 MATLAB 函数
了解如何将 C++ 结构传递给已部署的 MATLAB 函数。 (自 R2024b 起) - 代码存档(.ctf 文件)的放置
探索在运行可执行文件之前将代码存档(.ctf文件)放置在可访问位置的各种选项。
数据类型映射和示例生成
- C++ 和强类型 MATLAB 代码之间的数据类型映射
使用强类型 MATLAB 代码时,请参考 C++ 和 MATLAB 之间的数据类型映射。 - 将 MATLAB 类和函数映射到 C++
了解使用 MATLAB Data API 部署时 MATLAB 类和函数如何映射到 C++ 头文件。 - 使用 MATLAB 结构体数组
了解在部署接受结构体数组作为输入参量并将其作为输出返回的 MATLAB 函数时如何在 C++ 代码中处理 MATLAB 结构。(R2024b 之前) - 创建示例代码来调用导出函数
通过在打包过程中包含示例文件来生成 C++、.NET、Java® 或 Python® 的示例代码。
更多代码示例
- 从 C/C++ 调用 MATLAB Compiler SDK API 函数
在 C 和 C++ 代码中使用 MATLAB Compiler SDK 共享库函数。 - 部署接受结构体数组作为输入参量的 MATLAB 函数
了解如何打包和部署一个 MATLAB 函数,该函数接受结构体数组作为用 C++ 编写的应用程序的输入。 - 使用 MATLAB Data API 将 MATLAB 类部署到 C++ 应用程序
了解如何使用 MATLAB Data API 将包中包含的 MATLAB 类部署到 C++ 应用程序。 - 部署从 MATLAB Handle 类继承的 MATLAB 类
了解如何将从 MATLAB 句柄类继承的 MATLAB 类打包并部署到 C++ 应用程序。 (自 R2024a 起) - 从强类型 MATLAB 函数创建 C++ MATLAB Data API 共享库标头
从强类型 MATLAB 函数创建 C++ MATLAB Data API 共享库,并将其与示例 C++ 应用程序代码集成。 - C++ MATLAB Data API 共享库支持强类型 MATLAB 代码
了解 C++ MATLAB Data API 共享库如何支持使用强类型 MATLAB 代码。
维护
- 内存管理和清理
查看有关内存管理的建议。 - 了解 mclmcrrt 代理层
MATLAB Compiler™ 和 MATLAB Compiler SDK 生成的所有应用程序和软件组件仅需链接到一个 MATLAB 库mclmcrrt。该库为 MATLAB 库中用于矩阵运算、MAT 文件访问、实用工具和内存管理以及应用程序 MATLAB Runtime 的所有公共函数提供了代理 API。mclmcrrt库位于已部署的 MATLAB 代码和这些其他版本相关的库之间,提供以下功能: - 排除 mbuild 故障
涉及mbuild实用工具和创建独立应用程序的问题。