主要内容

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

了解 mclmcrrt 代理层

MATLAB® Compiler™MATLAB Compiler SDK™ 生成的所有应用程序和软件组件仅需链接到一个 MATLAB 库 mclmcrrt。该库为 MATLAB 库中用于矩阵运算、MAT 文件访问、实用工具和内存管理以及应用程序 MATLAB Runtime 的所有公共函数提供了代理 API。mclmcrrt 库位于已部署的 MATLAB 代码和这些其他版本相关的库之间,提供以下功能:

  • 确保 MATLAB Runtime 的多个版本可以共存

  • 提供间接层

  • 确保应用程序是线程安全的

  • 动态加载依赖(重新导出)的库

mclmcrrt 与其他 MATLAB 库的关系如下图所示。

MCLMCRRT 代理层

The MCLMCRRT library layer is statically linked to the MX and MAT modules and sits above the MCLMCR and MCR libraries

图中实线箭头表示静态链接,虚线箭头表示动态链接。该图说明了 mclmcrrt 库层如何位于 mclmcrmcr 库之上。mclmcr 库包含已部署的 MATLAB 代码的运行时功能。mcr 模块确保部署的每个 MATLAB 代码捆绑包在运行时都在其自己的上下文中运行。mclmcrrt 代理层除了加载 mclmcr 之外,还动态加载 MXMAT 模块,主要用于 mxArray 操作。如需详细信息,请使用关键字“MSVC 共享库”进行搜索。

小心

部署的应用程序必须仅链接到 mclmcrrt 代理层库(Windows® 上为 mclmcrrt.lib,Linux® 上为 mclmcrrt.soMacintosh 上为 mclmcrrt.dylib)。不要链接到图中所示的其他库,例如 mclmcrlibmx 等等。