Main Content

デプロイ アプリケーションのエラーの調査

アプリケーションをテスト マシンで実行した後、問題をエンド ユーザーのデプロイ内で特定することができます。アプリケーションのエンド ユーザーは、各自のマシンに MATLAB® Runtime をインストールする必要があります。MATLAB Runtime には、MATLAB のすべての機能をサポートする共有ライブラリ セットが含まれています。

テスト環境で実行が成功したにもかかわらず、アプリケーションがエンド ユーザーにデプロイできない場合、いくつかの理由があります。エンド ユーザーが使用可能な MATLAB コードの記述に関するガイドラインの詳細は、デプロイ可能な MATLAB コードの記述を参照してください。

MATLAB Runtime のインストール

スタンドアロンの実行可能ファイルまたは共有ライブラリに必要な共有ライブラリはすべて、MATLAB Runtime に含まれています。すべてのデプロイ ターゲットで MATLAB Runtime をインストールする必要があります。詳細については、MATLAB Runtime のインストールと構成を参照してください。

Linux または macOS でのダイナミック ライブラリ パスの更新

MATLAB Runtime インストール後のデプロイ先マシンでのパス設定の詳細については、デプロイ用の MATLAB Runtime パスの設定を参照してください。

DLL の欠落についてのエラー メッセージ

mclmcrrtX_XX.dllmclmcrrtX_XX.so などの DLL が見つからないことを示すエラー メッセージは、通常、MATLAB Runtime の不適切なインストールが原因となっています。MATLAB Runtime のインストールの詳細については、MATLAB Runtime のインストールと構成を参照してください。

場合によっては、MATLAB Runtime と Microsoft® Windows® の両方に含まれている DLL にバージョンの不一致があることがあります。どの DLL がアプリケーションで呼び出されているかについては、プロセス モニター ツールを使用して調べることができます。デプロイされたアプリケーションでのプロセス モニターの使用の詳細については、How can I use Process Monitor to troubleshoot the execution of my program? を参照してください。

また、MATLAB Runtime が正しくインストールされていても、PATHLD_LIBRARY_PATH、または DYLD_LIBRARY_PATH の各変数が正しく設定されていない可能性もあります。環境変数の設定の詳細については、デプロイ用の MATLAB Runtime パスの設定を参照してください。

注意

MATLAB Runtime のフォルダー構造内でライブラリまたはその他のファイルを移動することでこの問題を解決しないでください。MATLAB Runtime システムは、同じマシン上で実行されている異なるバージョンの MATLAB Runtime に対応するよう設計されています。フォルダー構造はこの機能の重要な一部です。

インストール ディレクトリへの書き込み権限の取得

コンパイル済みアプリケーションは、最初にデプロイ可能なアーカイブを解凍しようとします。アーカイブが抽出されないと、アプリケーションはコンパイルされた MATLAB コードにアクセスすることができず、アプリケーションは失敗します。アプリケーションがインストール フォルダーへの書き込み権限をもつ場合は、application-name_mcr という名前のサブフォルダーがアプリケーションの最初の実行時に作成されます。このサブフォルダーが作成されれば、アプリケーションはもう今後の作業に書き込み権限を必要としません。

より新しいバージョンのアプリケーションのデプロイ

実行可能ファイルの新しいバージョンをデプロイするときには、組み込みのデプロイ可能なコード アーカイブも含まれているため、実行可能ファイルを再デプロイしなければなりません。デプロイ可能なアーカイブは特定のコンパイル セッションに対応付けられています。アプリケーションが再コンパイルされるたびに、対応する新しいデプロイ可能なアーカイブが作成されます。既存のアプリケーション フォルダーを削除し、新しい実行可能ファイルを実行して、アプリケーションが新しいデプロイ可能なアーカイブを展開できることを確認します。前述したように、新しいデプロイ可能なアーカイブを展開するには書き込みアクセス権限が必要です。