スタンドアロンアプリケーションの中で addpath コマンドを使用するとエラーとなるのはなぜですか?
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 28 Mar 2016
Modificato: MathWorks Support Team
il 21 Giu 2022
自作の .m ファイルや、startup.m 内で addpath コマンドを使用してパスの追加をしています。MATLAB Compiler でこのような .m ファイルをスタンドアロンアプリケーション化後、実行すると以下のようなエラーとなります。
An unknown error occurred while executing MATLAB code. MCL:Runtime:InternalFeval
Risposta accettata
MathWorks Support Team
il 21 Giu 2022
Modificato: MathWorks Support Team
il 21 Giu 2022
このような挙動は、MATLAB Compiler でコンパイルを行ったマシンでスタンドアロンアプリケーションを実行させると起こります。
複数の .m ファイルで構成される MATLAB プログラムを、MATLAB Compiler でコンパイルする際、メインの .m ファイルで使用される、サブの .m ファイルが特定のディレクトリにある場合、そのパスはスタンドアロンアプリケーションに含まれます(自動でパスが登録されます)。
このため、addpath コマンド等で追加でパス設定を行うと、ファイルの検索の順番が変更され、同じ名前の別のファイルへのアクセスが発生し、エラーとなる場合があります。
基本的に、スタンドアロンアプリ内では、パスの取得は問題ありませんが、パスの設定、追加等は推奨されておりません。
上記の理由により、回避方法として isdeployed により addpath の使用を避けることをご検討ください。
例えば、以下をコンパイルすることにより、エラーを回避できます。
-----------------------
if ~isdeployed
addpath([pwd '\functions'])
end
-----------------------
スタンドアロンアプリケーションにおけるパスの取り扱いについては以下で紹介されています。
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su スタンドアロン アプリケーション in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!