Matlab compilerで作成したexeファイルで”関数xxx.mが未定義です”というエラーがたまに出る
조회 수: 5 (최근 30일)
이전 댓글 표시
自分で作ったプログラムA.mをapplication compilerを使ってA.exeを作成して使用しています。
A.exeでは常時フラグを監視しており、
フラグ=1となったらxxx.mのプログラムを流し、処理が完了したらフラグ=0にするという構成になっています。
ほとんどにおいて上記のフローの中でxxx.mは問題なく動いていますが、
ごくたまに”関数xxx.mが未定義です”というエラーが発生します。
その状態でA.exeを再起動しても、エラーは再現しません。
このエラーが発生しないようにするにはどのように対応したらよいでしょうか。
(プログラム作成に使用しているMatlabはR2021a, ランタイムも対応した9.10をインストールしています。)
댓글 수: 0
채택된 답변
Kojiro Saito
2024년 9월 10일
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
Kojiro Saito
2024년 9월 11일
Windowsの環境変数の設定でユーザー環境変数またはシステム環境変数にMCR_CACHE_ROOTを定義した場合は、設定は1度だけでEXEの再起動やPC再起動に依らず有効です。
コマンドプロンプトで設定した場合はそのコマンドプロンプト上から呼び出すプロセスにしか効果が無いので、EXE実行前に毎回実行する必要があります。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 C 共有ライブラリの統合에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!