主要内容

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

compiler.build.StandaloneApplicationOptions

构建独立应用程序的选项

说明

opts = compiler.build.StandaloneApplicationOptions(AppFile) 使用通过 AppFile 指定的 MATLAB® 函数、类或应用程序创建默认的独立应用程序选项对象。使用 StandaloneApplicationOptions 对象作为 compiler.build.standaloneApplicationcompiler.build.standaloneWindowsApplication 函数的输入。

示例

opts = compiler.build.standaloneApplicationOptions(AppFile,Name,Value) 创建一个独立的应用程序选项对象,并使用一个或多个名称值参量指定选项。

示例

示例

全部折叠

使用文件输入创建 StandaloneApplicationOptions 对象。

对于此示例,使用位于 matlabroot\extern\examples\compiler 文件 magicsquare.m

appFile = fullfile(matlabroot,'extern','examples','compiler','magicsquare.m');
opts = compiler.build.StandaloneApplicationOptions(appFile)
opts =

  StandaloneApplicationOptions with properties:

        CustomHelpTextFile: ''
              EmbedArchive: on
            ExecutableIcon: 'C:\Program Files\MATLAB\R2024b\toolbox\compiler\packagingResources\default_icon_48.png'
            ExecutableName: 'magicsquare'
    ExecutableSplashScreen: 'C:\Program Files\MATLAB\R2024b\toolbox\compiler\packagingResources\default_splash.png'
         ExecutableVersion: '1.0.0.0'
                   AppFile: 'C:\Program Files\MATLAB\R2024b\extern\examples\compiler\magicsquare.m'
      TreatInputsAsNumeric: off
           AdditionalFiles: {}
       AutoDetectDataFiles: on
     ExternalEncryptionKey: [0×0 struct]
          ObfuscateArchive: off
           SecretsManifest: ''
           SupportPackages: {'autodetect'}
                   Verbose: off
                 OutputDir: '.\magicsquarestandaloneApplication'

您可以使用点符号修改现有 StandaloneApplictionOptions 对象的属性值。例如,启用详尽输出。

opts.Verbose = 'on'
opts =

  StandaloneApplicationOptions with properties:

        CustomHelpTextFile: ''
              EmbedArchive: on
            ExecutableIcon: 'C:\Program Files\MATLAB\R2024b\toolbox\compiler\packagingResources\default_icon_48.png'
            ExecutableName: 'magicsquare'
    ExecutableSplashScreen: 'C:\Program Files\MATLAB\R2024b\toolbox\compiler\packagingResources\default_splash.png'
         ExecutableVersion: '1.0.0.0'
                   AppFile: 'C:\Program Files\MATLAB\R2024b\extern\examples\compiler\magicsquare.m'
      TreatInputsAsNumeric: off
           AdditionalFiles: {}
       AutoDetectDataFiles: on
     ExternalEncryptionKey: [0×0 struct]
          ObfuscateArchive: off
           SecretsManifest: ''
           SupportPackages: {'autodetect'}
                   Verbose: on
                 OutputDir: '.\magicsquarestandaloneApplication'

使用 StandaloneApplicationOptions 对象作为 compiler.build.standaloneApplication 函数的输入来构建独立应用程序。

compiler.build.standaloneApplication(opts);

创建一个 StandaloneApplictionOptions 对象并使用名称值参量对其进行自定义。

使用函数文件 mymagic.m 创建一个 StandaloneApplicationOptions 对象。使用名称-值参量指定输出目录,设置可执行版本和图标,并将输入视为数值。

opts = compiler.build.StandaloneApplicationOptions('mymagic.m', ...
'OutputDir','D:\Documents\MATLAB\work\MagicApp', ...
'ExecutableIcon','D:\Documents\MATLAB\work\images\magicicon.png', ...
'ExecutableVersion','2.0','TreatInputsAsNumeric','On')
opts =

  StandaloneApplicationOptions with properties:

        CustomHelpTextFile: ''
              EmbedArchive: on
            ExecutableIcon: 'D:\Documents\MATLAB\work\images\magicicon.png'
            ExecutableName: 'mymagic'
    ExecutableSplashScreen: 'C:\Program Files\MATLAB\R2024b\toolbox\compiler\packagingResources\default_splash.png'
         ExecutableVersion: '2.0'
                   AppFile: 'D:\Documents\MATLAB\work\mymagic.m'
      TreatInputsAsNumeric: on
           AdditionalFiles: {}
       AutoDetectDataFiles: on
     ExternalEncryptionKey: [0×0 struct]
          ObfuscateArchive: off
           SecretsManifest: ''
           SupportPackages: {'autodetect'}
                   Verbose: off
                 OutputDir: 'D:\Documents\MATLAB\work\MagicApp'

您可以使用点符号修改现有 StandaloneApplictionOptions 对象的属性值。例如,启用详尽输出。

opts.Verbose = 'on';

使用 StandaloneApplicationOptions 对象作为 compiler.build.standaloneApplication 函数的输入来构建独立应用程序。

compiler.build.standaloneApplication(opts);

输入参数

全部折叠

用于构建应用程序的主文件的路径,指定为行字符向量或字符串标量。该文件必须是以下类型之一的 MATLAB 函数、类或应用程序:.m.p.mlx.mlapp 或有效的 MEX 文件。

示例: 'mymagic.m'

数据类型: char | string

名称-值参数

全部折叠

Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: OutputDir='D:\work\myproject'

要包含在独立应用程序中的附加文件和文件夹,指定为字符向量、字符串标量、字符串数组或字符向量元胞数组。路径可以是相对于当前工作目录的路径,也可以是绝对路径。

示例: 'AdditionalFiles',["myvars.mat","myfunc.m"]

数据类型: char | string | cell

标志自动包含数据文件,指定为 'on''off',或者指定为数字或逻辑值 1 (true) 或 0 (false)。值 'on' 等效 true,而 'off' 等效 false。因此,您可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的开/关逻辑值。

  • 如果将此属性设置为 'on',则您作为某些函数(例如 loadfopen)的输入提供的数据文件将自动包含在独立应用程序中。这是默认行为。

  • 如果将此属性设置为 'off',则必须使用 AdditionalFiles 属性将数据文件添加到应用程序。

示例: 'AutoDetectDataFiles','Off'

数据类型: logical

包含应用程序最终用户的帮助文本的帮助文件的路径,指定为字符向量或字符串标量。该路径可以是相对于当前工作目录的路径,也可以是绝对路径。

示例: 'CustomHelpTextFile','D:\Documents\MATLAB\work\help.txt'

数据类型: char | string

嵌入可部署存档的标志,指定为 'on''off',或者指定为数字或逻辑值 1 (true) 或 0 (false)。值 'on' 等效 true,而 'off' 等效 false。因此,您可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的开/关逻辑值。

  • 如果将此属性设置为 'on',则该函数会将存档嵌入可部署的可执行文件中。

  • 如果将此属性设置为 'off',则该函数会将可部署存档生成为单独的文件。

示例: 'EmbedArchive','Off'

数据类型: logical

图标图像的路径,指定为字符向量或字符串标量。该图像用作独立可执行文件的图标。该路径可以是相对于当前工作目录的路径,也可以是绝对路径。接受的图像类型为 .jpg.jpeg.png.bmp.gif

默认路径为:

'matlabroot\toolbox\compiler\packagingResources\default_icon_48.png'

示例: 'ExecutableIcon','D:\Documents\MATLAB\work\images\myIcon.png'

数据类型: char | string

生成的应用程序的名称,指定为字符向量或字符串标量。默认值是 AppFile 的文件名。目标输出名称必须以字母或下划线字符开头,并且仅包含字母数字字符或下划线。

示例: 'ExecutableName','MagicSquare'

数据类型: char | string

启动画面图像的路径,指定为字符向量或字符串标量。该路径可以是相对于当前工作目录的路径,也可以是绝对路径。接受的图像类型为 .jpg.jpeg.png.bmp.gif。图像大小调整为 400 像素 x 400 像素。

默认路径为:

'matlabroot\toolbox\compiler\packagingResources\default_splash.png'

注意

这仅用于使用 compiler.build.standaloneWindowsApplication 构建的 Windows® 应用程序。

示例: 'ExecutableSplashScreen','D:\Documents\MATLAB\work\images\mySplash.png'

数据类型: char | string

可执行版本,指定为字符向量或字符串标量。

注意

这仅适用于 Windows 操作系统。

示例: 'ExecutableVersion','4.0'

数据类型: char | string

自 R2024b 起

外部 AES 加密密钥和 MEX 密钥加载程序文件的路径,指定为标量结构,具有恰好两行字符向量或字符串标量字段,分别名为 EncryptionKeyFileRuntimeKeyLoaderFile。两个结构体字段都是必需的。文件路径可以是相对于当前工作目录的路径,也可以是绝对路径。

例如,使用 struct keyValueStruct 将加密密钥指定为 encrypt.key 并将加载程序文件指定为 loader.mexw64

keyValueStruct.EncryptionKeyFile='encrypt.key'; keyValueStruct.RuntimeKeyLoaderFile='loader.mexw64'

加密密钥文件必须采用以下受支持的格式之一:

  • 二进制 256 位 AES 密钥,文件大小为 32 字节

  • 十六进制编码的 AES 密钥,文件大小为 64 字节

MEX 文件加载程序在运行时检索解密密钥,并且必须是具有以下参量的接口:

  • prhs[0] - 输入,指定为静态值 'get' 的字符数组

  • prhs[1] - 输入,指定为 CTF 组件 UUID 的字符数组

  • plhs[0] - 输出,32 字节 UINT8 数字数组或 64 字节十六进制编码字符数组,具体取决于密钥格式

请勿在多个 CTF 之间共享同一个密钥。

示例: 'ExternalEncryptionKey',keyValueStruct

数据类型: struct

用于混淆处理可部署存档的标志,指定为 'on''off',或者指定为数字或逻辑值 1 (true) 或 0 (false)。值 'on' 等效 true,而 'off' 等效 false。因此,您可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的开/关逻辑值。

  • 如果将此属性设置为 'on',则可部署存档中的文件夹结构和文件名将对最终用户进行混淆,并且 MATLAB 文件中包含的用户代码和数据将放入存档内的用户包中。此外,所有 .m 文件在打包之前都会转换为 P 文件。此选项等效使用指定 -j-smcc

  • 如果将此属性设置为 'off',则可部署存档不会被混淆。这是默认行为。

示例: 'ObfuscateArchive','on'

数据类型: logical

保存构建文件的输出目录的路径,指定为字符向量或字符串标量。该路径可以是相对于当前工作目录的路径,也可以是绝对路径。

构建文件夹的默认名称是可执行文件名称加上 standaloneApplication

示例: 'OutputDir','D:\Documents\MATLAB\work\MagicSquarestandaloneApplication'

数据类型: char | string

自 R2024b 起

机密清单 JSON 文件的路径,该文件指定要嵌入可部署存档中的机密密钥,指定为字符向量或字符串标量。该路径可以是相对于当前工作目录的路径,也可以是绝对路径。

如果您的 MATLAB 代码调用 getSecretgetSecretMetadataisSecret 函数,您必须在 JSON 机密清单文件中指定要嵌入可部署存档的密钥。如果您的代码调用 getSecret 并且您未指定 SecretsManifest 选项,MATLAB Compiler™ 会发出警告并在名为 <component_name>_secrets_manifest.json 的输出文件夹中生成一个模板 JSON 文件。通过在嵌入字段中指定密钥名称来修改此文件。

setSecret 函数不可部署。要将机密嵌入可部署存档中,您必须在构建存档之前在 MATLAB 中调用 setSecret

有关使用密钥进行部署的更多信息,请参阅处理已部署应用程序中的敏感信息

示例: 'SecretsManifest','D:\Documents\MATLAB\work\mycomponent\mycomponent_secrets_manifest.json'

数据类型: char | string

要包含的支持包,指定为以下选项之一:

  • 'autodetect'(默认)- 依赖关系分析过程会自动检测并包含所需的支持包。

  • 'none' - 不包括任何支持包。使用此选项可能会导致运行时错误。

  • 字符串标量、字符向量或字符向量元胞数组- 仅包含指定的支持包。要列出已安装的支持包或特定文件使用的支持包,请参阅 compiler.codetools.deployableSupportPackages

示例: 'SupportPackages',{'Deep Learning Toolbox Converter for TensorFlow Models','Deep Learning Toolbox Model for Places365-GoogLeNet Network'}

数据类型: char | string | cell

将命令行输入解释为数值的标志,指定为 'on''off',或者指定为数字或逻辑 1 (true) 或 0 (false)。值 'on' 等效 true,而 'off' 等效 false。因此,您可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的开/关逻辑值。

  • 如果将此属性设置为 'on',则命令行输入将被视为数字 MATLAB 双精度数。

  • 如果将此属性设置为 'off',则命令行输入将被视为 MATLAB 字符向量。这是默认行为。

示例: 'TreatInputsAsNumeric','on'

数据类型: logical

用于控制构建详细程度的标志,指定为 'on''off',或者指定为数字或逻辑值 1 (true) 或 0 (false)。值 'on' 等效 true,而 'off' 等效 false。因此,您可以将此属性的值用作逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的开/关逻辑值。

  • 如果将此属性设置为 'on',则 MATLAB 命令行窗口将显示进度信息,指示构建过程中的编译器输出。

  • 如果将此属性设置为 'off',则命令行窗口不会显示进度信息。这是默认行为。

示例: 'Verbose','on'

数据类型: logical

输出参量

全部折叠

独立应用程序构建选项,作为 StandaloneApplictionOptions 对象返回。

版本历史记录

在 R2020b 中推出