mcc
编译要部署的 MATLAB 函数
语法
说明
您可以使用 mcc
将 MATLAB® 程序打包并部署为独立应用程序、Excel® 加载项、Spark™ 应用程序或 Hadoop® 作业。
如果您拥有 MATLAB Compiler SDK™ 许可证,则可以使用 mcc
为 MATLAB Production Server™ 创建 C/C++ 共享库、.NET 程序集、Java® 包、Python® 包、MATLAB Production Server 可部署存档或 Excel 加载项。
一般用法
mcc [options]
按照选项指定的方式编译函数。使用的选项取决于预期的编译结果。第一个文件用作编译工件的入口。mfilename1 mfilename2 ... mfilenameN
您也可以从系统命令提示符调用此语法。
注意
包含特殊字符(例如句点或空格)的参量必须用单引号引起来。从 Windows® 命令提示符执行时使用双引号。
mcc(options,
按照选项指定的方式编译函数。将文件名和选项指定为字符向量或字符串。此语法允许您使用 MATLAB 变量作为输入参量。mfilename
)
独立应用程序
mcc -m [options]
将函数编译为独立应用程序。可执行文件类型由您的操作系统而定。mfilename
作为替代方案,compiler.build.standaloneApplication
函数支持大多数常见的工作流。
mcc -e [options]
将函数编译为独立应用程序,该应用程序在执行时不会打开 Windows 命令提示符。mfilename
-e
选项仅适用于 Windows 操作系统。
作为替代方案,compiler.build.standaloneWindowsApplication
函数支持大多数常见的工作流。
Excel 加载项
mcc -W 'excel:
使用指定的文件创建 Microsoft® Excel 加载项。在创建 Excel 加载项之前,请安装支持的编译器。addin_name
,class_name
,version=version_number
' [options] mfilename1 mfilename2 ... mfilenameN
您只能在 Windows 上创建 Excel 加载项。
addin_name
- 指定加载项的名称。如果您不指定名称,则mcc
使用
作为默认值。mfilename1
class_name
- 指定要创建的类的名称。如果您不指定类名,则mcc
使用addin_name
作为类名。如果指定,则class_name
不能与
相同。mfilename1
version_number
- 将加载项文件的版本号指定为文件系统中的major.minor.bug.build
。您不需要指定版本号。如果您不指定版本号,mcc
默认将版本号设置为1.0.0.0
。major
- 指定主版本号。如果您未指定数字,mcc
会将major
设置为1
。minor
- 指定次要版本号。如果您未指定数字,mcc
会将minor
设置为0
。bug
- 指定 bug 修复维护版本号。如果您未指定数字,mcc
会将bug
设置为0
。build
- 指定内部版本号。如果您未指定数字,mcc
会将build
设置为0
。
作为替代方案,compiler.build.excelAddIn
函数支持大多数常见的工作流。
Hadoop 上的 MapReduce 应用程序
仅限 Linux®
mcc -W 'hadoop:
从 archive_name
,CONFIG:config_file
' mfilename
mfilename
生成一个可部署存档,该存档可由 Hadoop 作为作业运行。
archive_name
- 指定生成的存档的名称。config_file
- 指定用于创建可部署存档的配置文件的路径。有关详细信息,请参阅使用 mcc 命令创建可部署存档的配置文件。
Simulink 仿真
需要 Simulink® Compiler™
mcc -m [options]
将包含 Simulink 仿真的 MATLAB 应用程序编译为独立应用程序。有关详细信息,请参阅Create and Deploy a Script with Simulink Compiler (Simulink Compiler)。mfilename
Python 包
需要 MATLAB Compiler SDK
mcc -W python:
使用指定的文件创建一个 Python 包。package_name
[options] mfilename1 mfilename2 ... mfilenameN
package_name
- 指定以可选命名空间开头的 Python 包的名称,它是一个以句点分隔的列表,例如companyname.groupname.component
。
作为替代方案,compiler.build.pythonPackage
(MATLAB Compiler SDK) 函数支持大多数常见的工作流。
.NET 程序集
需要 MATLAB Compiler SDK
mcc -W 'dotnet:
使用指定的文件创建一个具有单个类的 .NET 程序集。创建 .NET 程序集之前,请参阅MATLAB Compiler SDK .NET 目标要求 (MATLAB Compiler SDK)。assembly_name
,api=api_type
,class_name
,framework_version
,security
,remote_type
' [options] mfilename1 mfilename2 ... mfilenameN
assembly_name
- 指定以可选命名空间开头的程序集的名称,它是一个以句点分隔的列表,例如companyname.groupname.component
。api_type
- 指定程序集的 API 类型。值为matlab-data
和mwarray
。默认值为mwarray
。class_name
- 指定要创建的 .NET 类的名称。framework_version
- 指定要用于编译程序集的 Microsoft .NET Framework 的版本。指定以下两个选项之一:0.0
- 在目标计算机上使用支持的最新版本。
- 使用框架的特定版本。version_major
.version_minor
功能通常特定于版本。请参阅与您要实现的功能相关的文档,以了解 Microsoft .NET Framework 的版本要求。
security
- 指定要创建的程序集是私有程序集还是共享程序集。要创建私有程序集,请指定
Private
。要创建共享程序集,请指定用于对该程序集签名的加密密钥文件的完整路径。
remote_type
- 指定程序集的远程类型。值为remote
和local
。
mcc -W 'dotnet:
使用指定的文件创建一个具有多个类的 .NET 程序集。您可以通过添加 assembly_name
,api=api_type
,class_name
,framework_version
,security
,remote_type
' [options] 'class{class_name:mfilename1,mfilename2,...,mfilenameN}
'class{___}
参量来包含其他类设定符。
作为替代方案,compiler.build.dotNETAssembly
(MATLAB Compiler SDK) 函数支持大多数常见的工作流。
Java 包
需要 MATLAB Compiler SDK
mcc -W 'java:
从指定的文件创建一个 Java 包。创建 Java 包之前,请参阅配置您的 Java 环境 (MATLAB Compiler SDK)。package_name
,class_name
' [options] mfilename1 mfilename2 ... mfilenameN
package_name
- 指定以可选命名空间开头的 Java 包的名称,它是一个以句点分隔的列表,例如companyname.groupname.component
。class_name
- 指定要创建的类的名称。如果您未指定类名,mcc
使用package_name
中的最后一项。
mcc -W 'java:
使用指定的文件创建一个具有多个类的 Java 包。您可以通过添加 package_name
,class_name
' [options] 'class{class_name:mfilename1,mfilename2,...,mfilenameN}
'class{___}
参量来包含其他类设定符。
作为替代方案,compiler.build.javaPackage
(MATLAB Compiler SDK) 函数支持大多数常见的工作流。
C 共享库
需要 MATLAB Compiler SDK
mcc -l [options]
将列出的函数编译成 C 共享库并生成 C 包装器代码,以与其他应用程序集成。mfilename1 mfilename2 ... mfilenameN
作为替代方案,compiler.build.cSharedLibrary
(MATLAB Compiler SDK) 函数支持大多数常见的工作流。
C++ 共享库
需要 MATLAB Compiler SDK
mcc -W 'cpplib:
将列出的函数编译成 C++ 共享库并生成 C++ 包装器代码,以与其他应用程序集成。library_name
[,{all|legacy|generic}]' [options] mfilename1 mfilename2 ... mfilenameN
library_name
- 指定共享库的名称。all
- 通过mwArray
API 和使用 MATLAB Data API 的通用接口生成共享库。这是默认行为。legacy
- 使用mwArray
API 生成共享库。generic
- 使用 MATLAB Data API 生成共享库。
作为替代方案,compiler.build.cppSharedLibrary
(MATLAB Compiler SDK) 函数支持大多数常见的工作流。
COM 组件
需要 MATLAB Compiler SDK
mcc -W 'com:
将列出的函数编译为通用的 Microsoft COM 组件。component_name
,class_name
' [options] mfilename1 mfilename2 ... mfilenameN
component_name
- 指定 COM 组件的名称。
class_name
- 指定类的名称。
作为替代方案,compiler.build.comComponent
(MATLAB Compiler SDK) 函数支持大多数常见的工作流。
mcc -W 'com:component_name,
使用指定的文件创建一个具有多个类的 Microsoft COM 组件。您可以通过添加 class_name
' [options] 'class{class_name:mfilename1,mfilename2,...,mfilenameN}
'class{___}
参量来包含其他类设定符。
MATLAB Production Server 的可部署存档
需要 MATLAB Compiler SDK
mcc -U -W 'CTF:
创建一个可部署存档(archive_name
[,DISCOVERY:FunctionSignatures.json
][,ROUTES:ArchiveRoutes.json
]' [options] mfilename1 mfilename2 ... mfilenameN
.ctf
文件),以供 MATLAB Production Server 实例使用。
archive_name
- 指定可部署存档的名称。FunctionSignatures.json
- 指定包含有关 MATLAB 函数的信息的 JSON 文件,指定为绝对路径或相对路径。此选项仅适用于使用发现 API 的 RESTful 客户端。有关详细信息,请参阅JSON 中的 MATLAB 函数签名 (MATLAB Production Server)。ArchiveRoutes.json
- 指定包含 URL 路由的 JSON 文件,这些路由将客户端请求映射到存档内的 MATLAB Web 处理程序函数。使用此选项可以按可部署存档名称组织路由,而不是在routes-file
(MATLAB Production Server) 服务器配置属性指定的服务器级路由文件中定义它们。有关 Web 请求处理程序的详细信息,请参阅处理 HTTP 请求中的自定义路由和负载 (MATLAB Production Server)。
该语法还为 Microsoft Excel 加载项创建服务器端可部署存档(.ctf
文件)。
作为替代方案,compiler.build.productionServerArchive
(MATLAB Compiler SDK) 函数支持大多数常见的工作流,但不支持创建特定于存档的路由。
用于 MATLAB Production Server 的 Excel 加载项
需要 MATLAB Compiler SDK
mcc -W 'mpsxl:
使用指定的文件创建客户端 Microsoft Excel 加载项,该加载项可用于从 Excel 向 MATLAB Production Server 发送请求。创建客户端加载项之前,必须先使用指定的文件创建服务器端可部署存档(addin_name
,class_name
,version
' input_marshaling_flags
output_marshaling_flags
[options] mfilename1 mfilename2 ... mfilenameN
.ctf
文件)。纯客户端加载项是不可行的。
addin_name
- 指定加载项的名称。class_name
- 指定要创建的类的名称。如果您不指定类名,mcc
使用addin_name
作为默认值。version
- 指定加载项的版本,以major
.minor
形式指定。major
- 指定主版本号。如果您未指定版本号,mcc
使用最新版本。minor
- 指定次要版本号。如果您未指定版本号,mcc
使用最新版本。
input_marshaling_flags
- 指定如何在 Microsoft Excel 和 MATLAB 之间编组数据的选项。-replaceBlankWithNaN
- 指定将 Microsoft Excel 中的空白编组为 MATLAB 中的 NaN。如果您不指定此标志,则空白将被编组为 0。-convertDateToString
- 指定将 Microsoft Excel 中的日期编组为 MATLAB 字符向量。如果您不指定此标志,则日期将被编组为 MATLAB 双精度值。
output_marshaling_flags
- 指定如何在 MATLAB 和 Microsoft Excel 之间编组数据的选项。-replaceNaNWithZero
- 指定将 MATLAB 中的 NaN 编组为 Microsoft Excel 中的 0。如果您不指定此标志,NaN 将被编组为 Visual Basic® 中的#QNAN
。-convertNumericToDate
- 指定将 MATLAB 数值编组为 Microsoft Excel 日期。如果您不指定此标志,Microsoft Excel 将不会接收日期作为输出。
作为替代方案,compiler.build.excelClientForProductionServer
(MATLAB Compiler SDK) 函数支持大多数常见的工作流。
示例
输入参数
限制
mcc
无法创建 Web 应用。要创建 Web App,请使用 Web App 编译器或compiler.build.webAppArchive
函数。您可以使用
mcc
在 MATLAB Online Server™ 上构建组件,该服务器充当 Linux 环境 (自 R2022b 起)。要构建需要外部编译器的目标,包括 Java、C++ 和 COM 组件,必须设置 MATLAB Online Server 工作单元以运行所需的工具链。
提示
在 Windows 上,您可以通过将
version=
version_number
追加到目标生成mcc
语法来为目标文件生成系统级文件版本号。例如,请参阅创建 Excel 加载项(仅限 Windows)。version_number
- 将目标文件的版本指定为文件系统中的major.minor.bug.build
。您不需要指定版本号。如果您未指定版本号,mcc
会默认将版本号设置为1.0.0.0
。major
- 指定主版本号。如果您未指定版本号,mcc
会将major
设置为1
。minor
- 指定次要版本号。如果您未指定版本号,mcc
会将minor
设置为0
。bug
- 指定 bug 修复维护版本号。如果您未指定版本号,mcc
会将bug
设置为0
。build
- 指定内部版本号。如果您未指定版本号,mcc
会将build
设置为0
。
MATLAB Compiler 中的独立应用程序和 Excel 加载项支持此功能。
MATLAB Compiler SDK 中用于 MATLAB Production Server 的 C 共享库、C++ 共享库、COM 组件、.NET 程序集和 Excel 加载项支持此功能。
版本历史记录
在 R2006a 之前推出