Matlab compilerで作成したexeファイルで”関数xxx.mが未定義です”というエラーがたまに出る
11 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Makiko
el 10 de Sept. de 2024
Comentada: Kojiro Saito
el 11 de Sept. de 2024
自分で作ったプログラムA.mをapplication compilerを使ってA.exeを作成して使用しています。
A.exeでは常時フラグを監視しており、
フラグ=1となったらxxx.mのプログラムを流し、処理が完了したらフラグ=0にするという構成になっています。
ほとんどにおいて上記のフローの中でxxx.mは問題なく動いていますが、
ごくたまに”関数xxx.mが未定義です”というエラーが発生します。
その状態でA.exeを再起動しても、エラーは再現しません。
このエラーが発生しないようにするにはどのように対応したらよいでしょうか。
(プログラム作成に使用しているMatlabはR2021a, ランタイムも対応した9.10をインストールしています。)
0 comentarios
Respuesta aceptada
Kojiro Saito
el 10 de Sept. de 2024
MATLAB Runtimeのキャッシュフォルダーが不定期に破損している可能性があります。
Windowsだとキャッシュフォルダーが環境変数TEMPの中の「C:\Users\<ユーザー名>\AppData\Local\Temp\<ユーザー名>\mcrCache9.10」に作られるのですが、Windowsが自動的にファイルを削除する可能性があります。
環境変数「MCR_CACHE_ROOT」を%TEMP%以外のフォルダーに変更してみて実行してみたらいかがでしょうか。
例:コマンドプロンプトで
set MCR_CACHE_ROOT=C:\Work\MCR_Cache
を実行してから
A.exe
を実行する。
2 comentarios
Kojiro Saito
el 11 de Sept. de 2024
Windowsの環境変数の設定でユーザー環境変数またはシステム環境変数にMCR_CACHE_ROOTを定義した場合は、設定は1度だけでEXEの再起動やPC再起動に依らず有効です。
コマンドプロンプトで設定した場合はそのコマンドプロンプト上から呼び出すプロセスにしか効果が無いので、EXE実行前に毎回実行する必要があります。
Más respuestas (0)
Ver también
Categorías
Más información sobre ビッグ データの処理 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!