compiler.build.standaloneApplication
MATLAB の外部でデプロイするスタンドアロン アプリケーションを作成
構文
説明
compiler.build.standaloneApplication( は、MATLAB® 関数、クラス、または AppFile)AppFile で指定したアプリを使用して、デプロイ可能なスタンドアロン アプリケーションを作成します。実行可能ファイルのタイプは、オペレーティング システムにより決定されます。生成された実行可能ファイルには MATLAB Runtime やインストーラーが含まれていません。
compiler.build.standaloneApplication( は、名前と値の引数を 1 つ以上使って指定した追加オプションを用いて、スタンドアロン アプリケーションを作成します。オプションには実行可能ファイルの名前、ヘルプ テキスト、アイコン イメージがあります。AppFile,Name,Value)
compiler.build.standaloneApplication( は、opts)compiler.build.StandaloneApplicationOptions オブジェクト opts を使って指定した追加オプションを用いて、スタンドアロン アプリケーションを作成します。名前と値の引数を使用して他のオプションを指定することはできません。
例
魔方陣を生成する関数ファイルを使用してスタンドアロン アプリケーションを作成します。
MATLAB で、スタンドアロン アプリケーションとしてデプロイする MATLAB コードを見つけます。この例では、ファイル magicsquare.m を使用してコンパイルします。
appFile = fullfile(which('magicsquare.m'));compiler.build.standaloneApplication コマンドを使用して、スタンドアロン アプリケーションをビルドします。
compiler.build.standaloneApplication(appFile);
この構文により、現在の作業ディレクトリの magicsquarestandaloneApplication という名前のフォルダー内に以下のファイルが生成されます。
includedSupportPackages.txt— アプリケーションに含まれている、すべてのサポートされるファイルをリストしたテキスト ファイル。magicsquare.exeまたはmagicsquare— Windows® システムでコンパイルされた場合は.exe拡張子をもつ実行可能ファイル、Linux® システムまたは macOS システムでコンパイルされた場合は拡張子のない実行可能ファイル。run_magicsquare.sh— ライブラリ パスを設定し、アプリケーションを実行するシェル スクリプト ファイル。このファイルは Linux システムおよび macOS システムでのみ生成されます。mccExcludedFiles.log— アプリケーションに含まれていないすべてのツールボックス関数のリストが含まれるログ ファイル。サポートされていない関数の詳細については、MATLAB Compiler の制限を参照してください。readme.txt— デプロイの前提条件に関する情報と、デプロイ用にパッケージ化するファイルのリストが含まれるテキスト ファイル。requiredMCRProducts.txt— MATLAB Runtime がアプリケーションを実行するために必要な製品の製品 ID が含まれるテキスト ファイル。unresolvedSymbols.txt— 未解決のシンボルに関する情報が含まれるテキスト ファイル。
入力引数 4 を指定して MATLAB から magicsquare を実行するには、magicsquarestandaloneApplication フォルダーに移動し、オペレーティング システムに基づいて以下のコマンドのいずれかを実行します。
| オペレーティング システム | MATLAB コマンド ウィンドウでのテスト |
|---|---|
| Windows | !magicsquare 4 |
| macOS | system(['./run_magicsquare.sh ',matlabroot,' 4']); |
| Linux | !./magicsquare 4 |
アプリケーションにより 4 行 4 列の魔方陣が出力されます。
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1MATLAB 外でスタンドアロン アプリケーションを実行するには、スタンドアロン アプリケーションの実行を参照してください。
スタンドアロン アプリケーションを作成し、名前と値の引数を使用してカスタマイズします。
サブ関数を使用して魔方陣の対角要素を計算する MATLAB 関数を記述します。これらの関数を mymagicdiag.m および mydiag.m という名前のファイルに保存します。
function out = mymagicdiag(in)
X = magic(in);
out = mydiag(X);function out = mydiag(in)
out = [diag(in)]';mymagicdiag.m を使用してスタンドアロン アプリケーションをビルドします。名前と値のペアの引数を使用して実行可能ファイル名を指定し、関数ファイル mydiag.m を追加して、コマンド ライン入力を double の数値として解釈します。
compiler.build.standaloneApplication('mymagicdiag.m', ... 'ExecutableName','MagicDiagApp', ... 'AdditionalFiles','mydiag.m', ... 'TreatInputsAsNumeric','On')
入力引数 4 を指定して MATLAB から MagicDiagApp を実行するには、MagicDiagAppstandaloneApplication フォルダーに移動し、オペレーティング システムに基づいて以下のコマンドのいずれかを実行します。
| オペレーティング システム | MATLAB コマンド ウィンドウでのテスト |
|---|---|
| Windows | !MagicDiagApp 4 |
| macOS | system(['./run_MagicDiagApp.sh ',matlabroot,' 4']); |
| Linux | !./MagicDiagApp 4 |
アプリケーションにより、4 行 4 列の魔方陣の対角要素が出力されます。
16 11 6 1
compiler.build.StandaloneApplicationOptions オブジェクトを使用して、Windows システム上で複数のスタンドアロン アプリケーションを作成します。
ファイル magicsquare.m を使用してスタンドアロン アプリケーションを作成します。
appFile = fullfile(which('magicsquare')); appFile を使用して StandaloneApplicationOptions オブジェクトを作成します。名前と値の引数を使用して共通の出力ディレクトリを指定し、コマンド ライン入力を double の数値として解釈し、ビルド プロセス中に進行状況の情報を表示します。
opts = compiler.build.StandaloneApplicationOptions(appFile,... 'OutputDir','D:\Documents\MATLAB\work\MagicBatch',... 'TreatInputsAsNumeric','On',... 'Verbose','On')
opts =
StandaloneApplicationOptions with properties:
CustomHelpTextFile: ''
EmbedArchive: on
ExecutableIcon: 'C:\Program Files\MATLAB\R2025b\toolbox\compiler\packagingResources\default_icon_48.png'
ExecutableName: 'magicsquare'
ExecutableSplashScreen: 'C:\Program Files\MATLAB\R2025b\toolbox\compiler\packagingResources\default_splash.png'
ExecutableVersion: '1.0.0.0'
AppFile: 'C:\Program Files\MATLAB\R2025b\extern\examples\compiler\magicsquare.m'
TreatInputsAsNumeric: on
AdditionalFiles: {}
AutoDetectDataFiles: on
ExternalEncryptionKey: [0×0 struct]
ObfuscateArchive: off
SecretsManifest: ''
SupportPackages: {'autodetect'}
Verbose: on
OutputDir: 'D:\Documents\MATLAB\work\MagicBatch'StandaloneApplicationOptions オブジェクトを入力としてビルド関数に渡すことで、スタンドアロン アプリケーションをビルドします。
compiler.build.standaloneApplication(opts);
同じオプションをもつ関数ファイル example2.m を使用して新しいスタンドアロン アプリケーションを作成するには、ビルド関数を再度実行する前に、ドット表記を使用して既存の StandaloneApplicationOptions オブジェクトの AppFile を変更します。
opts.AppFile = 'example2.m';
compiler.build.standaloneApplication(opts);AppFile 引数を変更して再コンパイルすることにより、同じオプション オブジェクトを使用して複数のアプリケーションを作成できます。
スタンドアロン アプリケーションを作成し、ビルド タイプ、生成ファイル、含まれるサポート パッケージ、およびビルド オプションに関する情報を compiler.build.Results オブジェクトに保存します。
ファイル magicsquare.m を使用してコンパイルします。
results = compiler.build.standaloneApplication('magicsquare.m')results =
BuildType: 'standaloneApplication'
Files: {2×1 cell}
IncludedSupportPackages: {}
Options: [1×1 compiler.build.StandaloneApplicationOptions]
RuntimeDependencies: [1×1 compiler.runtime.Dependencies]Files プロパティには、magicsquare スタンドアロン実行可能ファイルと readme.txt ファイルへのパスが格納されます。
入力引数
アプリケーションのビルドに使用するメイン ファイルへのパス。行の文字ベクトルまたは string スカラーとして指定します。このファイルは、MATLAB 関数、クラス、またはアプリで、タイプは .m、.p、.mlx、.mlapp、あるいは有効な MEX ファイルでなければなりません。
例: 'mymagic.m'
データ型: char | string
スタンドアロン アプリケーションのビルド オプション。compiler.build.StandaloneApplicationOptions オブジェクトとして指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: OutputDir='D:\work\myproject'
スタンドアロン アプリケーションに含める追加のファイルとフォルダー。文字ベクトル、string スカラー、string 配列、または文字ベクトルの cell 配列として指定します。パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
例: 'AdditionalFiles',["myvars.mat","myfunc.m"]
データ型: char | string | cell
データ ファイルを自動的に含めるためのフラグ。'on' または 'off'、もしくは数値または logical の 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。
このプロパティを
'on'に設定した場合、特定の関数 (loadやfopenなど) の入力として指定されるデータ ファイルは自動的にスタンドアロン アプリケーションに含められます。これは既定の動作です。このプロパティを
'off'に設定した場合、データ ファイルはAdditionalFilesプロパティを使用してアプリケーションに追加しなければなりません。
例: 'AutoDetectDataFiles','Off'
データ型: logical
アプリケーションのエンド ユーザー向けヘルプ テキストが含まれるヘルプ ファイルへのパス。文字ベクトルまたは string スカラーとして指定します。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
例: 'CustomHelpTextFile','D:\Documents\MATLAB\work\help.txt'
データ型: char | string
デプロイ可能なアーカイブを組み込むためのフラグ。'on' または 'off'、もしくは数値または logical の 1 (true) か 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。
このプロパティを
'on'に設定した場合、関数はアーカイブをデプロイ可能な実行可能ファイルに組み込みます。このプロパティを
'off'に設定した場合、関数はデプロイ可能なアーカイブを別個のファイルとして生成します。
例: 'EmbedArchive','Off'
データ型: logical
アイコン イメージへのパス。文字ベクトルまたは string スカラーとして指定します。イメージは、スタンドアロン実行可能ファイルのアイコンとして使用されます。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。使用可能なイメージのタイプは .jpg、.jpeg、.png、.bmp、.gif です。
既定のパスは次のとおりです。
'matlabroot\toolbox\compiler\packagingResources\default_icon_48.png'例: 'ExecutableIcon','D:\Documents\MATLAB\work\images\myIcon.png'
データ型: char | string
生成されるアプリケーションの名前。文字ベクトルまたは string スカラーとして指定します。既定値は AppFile のファイル名です。ターゲットの出力名は英字またはアンダースコアで始まっていなければならず、また英数字とアンダースコアのみ使用できます。
例: 'ExecutableName','MagicSquare'
データ型: char | string
スプラッシュ スクリーン イメージへのパス。文字ベクトルまたは 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
実行可能ファイルのバージョン。文字ベクトルまたは string スカラーとして指定します。
メモ
これは Windows オペレーティング システムでのみ使用されます。
例: 'ExecutableVersion','4.0'
データ型: char | string
R2024b 以降
外部の AES 暗号化キー ファイルおよび MEX キー ローダー ファイルへのパス。char 行ベクトルまたは string スカラーの正確に 2 つのフィールドをもつスカラー struct として指定します。フィールド名はそれぞれ EncryptionKeyFile と RuntimeKeyLoaderFile です。struct のフィールドはどちらも必須です。ファイル パスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
たとえば、struct keyValueStruct を使用して暗号化キーを encrypt.key、ローダー ファイルを loader.mexw64 と指定します。
keyValueStruct.EncryptionKeyFile='encrypt.key'; keyValueStruct.RuntimeKeyLoaderFile='loader.mexw64'
暗号化キー ファイルは、サポートされている次のいずれかの形式でなければなりません。
バイナリ 256 ビットの AES キー、32 バイトのファイル サイズ
16 進数でエンコードされた AES キー、64 バイトのファイル サイズ
MEX ファイル ローダーは実行時に復号化キーを取得します。これは次の引数をもつインターフェイスでなければなりません。
prhs[0]— 入力、固定値'get'として指定される char 配列prhs[1]— 入力、CTF コンポーネント UUID として指定される char 配列plhs[0]— 出力、キーの形式に応じて 32 バイトの UINT8 数値配列または 64 バイトの 16 進数でエンコードされた char 配列
複数の CTF で同じキーを共有することは避けてください。
例: 'ExternalEncryptionKey',keyValueStruct
データ型: struct
デプロイ可能なアーカイブを難読化するためのフラグ。'on'/1/true または 'off'/0/false として指定します。値は、matlab.lang.onoffSwitchState 型の on/off の logical 値として保存されます。
このプロパティを 'on' に設定した場合、デプロイ可能なアーカイブのフォルダー構造およびファイル名はエンド ユーザーに対して難読化され、.m、.mlapp、.p、.mat、MLX、SFX、および MEX ファイルに含まれているユーザー コードおよびデータはアーカイブ内のユーザー パッケージに配置されます。また、すべての .m ファイルがパッケージ化の前に P ファイルに変換されます。
実行時に、MATLAB コードとデータはファイル システムに抽出されるのではなく、ユーザー パッケージから直接復号化されて読み込まれます。MEX ファイルは、一時的にユーザー パッケージから抽出されてから、読み込まれます。
追加のファイル タイプをユーザー パッケージに手動で含めるには、それぞれのファイル タイプを個別の拡張子タグでファイル に追加します。matlabroot/toolbox/compiler/advanced_package_supported_files.xml
以下はサポートされて "いません"。
ver関数DLL などの外部ライブラリの呼び出し
アウトプロセスの MATLAB Runtime (MATLAB データ配列の C++ 共有ライブラリ)
アウトプロセスでの MEX ファイルの実行 (
mexhost、feval、matlab.mex.MexHost)R2023b より前: v7.3 以外の
.matファイル
このオプションを有効にすることは、-j および -s を指定して mcc を使用するのと等価です。
このプロパティを 'off' に設定した場合、デプロイ可能なアーカイブは難読化されません。これは既定の動作です。
例: 'ObfuscateArchive','on'
データ型: logical
ビルド ファイルが保存される出力ディレクトリへのパス。文字ベクトルまたは string スカラーとして指定します。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
ビルド フォルダーの既定の名前は、実行可能ファイル名に standaloneApplication を追加したものです。
例: 'OutputDir','D:\Documents\MATLAB\work\MagicSquarestandaloneApplication'
データ型: char | string
R2024b 以降
デプロイ可能なアーカイブに組み込む秘密鍵を指定する secret マニフェスト JSON ファイルへのパス。文字ベクトルまたは string スカラーとして指定します。このパスは現在の作業ディレクトリを基準とした相対パス、または絶対パスにできます。
MATLAB コードで関数 getSecret、getSecretMetadata、または isSecret を呼び出す場合、デプロイ可能なアーカイブに組み込む秘密鍵を JSON secret マニフェスト ファイルで指定しなければなりません。コードで getSecret を呼び出す場合に SecretsManifest オプションが指定されていないと、MATLAB Compiler™ は警告を発行し、 という名前の出力フォルダーにテンプレート JSON ファイルを生成します。"Embedded" フィールドで秘密鍵の名前を指定して、このファイルを修正します。<component_name>_secrets_manifest.json
関数 setSecret はデプロイ可能ではありません。デプロイ可能なアーカイブに秘密鍵を組み込むには、アーカイブをビルドする前に MATLAB で setSecret を呼び出す必要があります。
シークレットを使用したデプロイの詳細については、Handle Sensitive Information in Deployed Applicationsを参照してください。
例: 'SecretsManifest','D:\Documents\MATLAB\work\mycomponent\mycomponent_secrets_manifest.json'
データ型: char | string
含めるサポート パッケージ。次のオプションのいずれかとして指定します。
'autodetect'(既定) — 依存関係の分析プロセスにより、必要なサポート パッケージが自動的に検出され、含められます。'none'— サポート パッケージは含められません。このオプションを使用すると、ランタイム エラーの原因となる可能性があります。string スカラー、文字ベクトル、または文字ベクトルの cell 配列 — 指定されたサポート パッケージのみが含められます。インストールされている、または特定のファイルで使用されるサポート パッケージのリストを表示するには、
compiler.codetools.deployableSupportPackagesを参照してください。
例: 'SupportPackages',{'Deep Learning Toolbox Converter for TensorFlow Models','Deep Learning Toolbox Model for Places365-GoogLeNet Network'}
データ型: char | string | cell
コマンド ライン入力を数値として解釈するためのフラグ。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。
このプロパティを
'on'に設定した場合、コマンド ライン入力は MATLAB double の数値として扱われます。このプロパティを
'off'に設定した場合、コマンド ライン入力は MATLAB 文字ベクトルとして扱われます。これは既定の動作です。
例: 'TreatInputsAsNumeric','on'
データ型: logical
ビルドの詳細を制御するためのフラグ。'on' または 'off'、もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off' の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。
このプロパティを
'on'に設定した場合、MATLAB コマンド ウィンドウには、ビルド プロセス中のコンパイラ出力を示す進行状況情報が表示されます。このプロパティを
'off'に設定した場合、コマンド ウィンドウには進行状況の情報は表示されません。これは既定の動作です。
例: 'Verbose','on'
データ型: logical
出力引数
ビルド結果。compiler.build.Results オブジェクトとして返されます。Results オブジェクトには以下が含まれています。
'standaloneApplication'であるビルド タイプコンパイル済みファイルへのパス
含まれているサポート パッケージのリスト
ビルド オプション。
StandaloneApplicationOptionsオブジェクトとして指定必須およびオプションの依存関係のリスト。
Dependenciesオブジェクトとして指定します。
ヒント
この関数を使用してシステム コマンド プロンプトからスタンドアロン アプリケーションを作成するには、関数
matlabを-batchオプションと共に使用します。以下に例を示します。matlab -batch compiler.build.standaloneApplication('mymagic.m')
バージョン履歴
R2020b で導入MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)