メインコンテンツ

テスト エラー

正常にアプリケーションをコンパイルしたら、次の手順は、開発マシン上でテストし、ターゲット マシン上にデプロイすることです。一般的に、ターゲット マシンには MATLAB® がインストールされていないため、MATLAB Runtime をインストールする必要があります。配布には、実行可能ファイル、デプロイ可能なアーカイブ、MATLAB Runtime など、アプリケーションの実行に必要なすべてのファイルが含まれます。

開発マシン上で MATLAB Compiler™ に付属の MATLAB Runtime に対してアプリケーションを実行することにより、アプリケーションをテストしてください。これにより、ライブラリ依存関係が正しく、デプロイ可能なアーカイブが解凍可能であり、アプリケーションに必要なすべての MATLAB コード、MEX ファイル、サポート ファイルがアーカイブに含まれていることが確認されます。アプリケーションのテスト中にエラーが発生する場合は、以下の質問が問題を特定する助けになるかもしれません。

MATLAB からアプリケーションを実行することができますか

開発マシン上の MATLAB プロンプトで !application-name を発行することにより、アプリケーションの実行をテストすることができます。アプリケーションが MATLAB の外ではなく中で作動する場合は、これはシステム PATH 変数の問題を示す可能性があります。

アプリケーションは実行を開始し、MATLAB か他のエラーが発生しますか

アプリケーションをコンパイルする際に、すべての必要なファイルを含めたことを確認してください (詳細は、コンパイルで生成される readme.txt ファイルを参照)。

メイン MATLAB ファイルから呼び出される関数は、MATLAB Compiler により自動的に含められます。ただし、明示的に呼び出されない (たとえば EVAL を介する) 関数は、mcc コマンドの -a スイッチを使用してコンパイル時に含めなければなりません。また、.mat.txt.html ファイルのようなサポート ファイルは、-a スイッチでアーカイブに追加しなければなりません。MATLAB およびコンパイルできる関連ツールボックスの機能には制限があります。アプリケーションの MATLAB ファイル内で使用された関数が有効であることを確認するために、ドキュメンテーションを確認してください。開発マシン上の mccExcludedFiles.log ファイルを確認してください。このファイルは、コンパイルできないアプリケーションから呼び出されたすべての関数をリストします。

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

複数の MATLAB のバージョンをインストールしていますか

MATLAB Compiler で生成された実行可能ファイルは、MATLAB の複数のバージョンがインストールされている環境でも実行できるように設計されています。MATLAB の旧バージョンによってはこのアーキテクチャに完全に対応しないものがあります。

Windows では、コンパイルに使用している MATLAB のバージョンの matlabroot\runtime\win64 が、マシンの環境変数 PATH にインストールされている MATLAB の他のバージョンの matlabroot\runtime\win64 よりも前に表示されていることを確認してください。

同様に、UNIX® では、ダイナミック ライブラリ パス (Linux® では LD_LIBRARY_PATH) が一致していることを確認してください。これを行うために、MATLAB プロンプトの !printenv、シェル プロンプトの printenv の出力を比較します。このパスを使用して、オペレーティング システム コマンド ラインから mcc を使用することができます。

スタンドアロンの実行可能ファイルまたは共有ライブラリとドライバー アプリケーションをテストしている場合、MATLAB Runtime をインストールしましたか

スタンドアロンの実行可能ファイルまたは共有ライブラリに必要な共有ライブラリはすべて、MATLAB Runtime に含まれています。どのデプロイ ターゲットにも MATLAB Runtime をインストールする必要があります。

欠落している DLL についてエラー メッセージを受け取りますか

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

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

注意

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