Matlab compilerで作​成したexeファイル​で”関数xxx.mが​未定義です”というエ​ラーがたまに出る

11 visualizaciones (últimos 30 días)
Makiko
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をインストールしています。)

Respuesta aceptada

Kojiro Saito
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
Makiko
Makiko el 11 de Sept. de 2024
回答ありがとうございます。
例で挙げていただいた変更は
1回実施すればA.exeの再起動やPCの再起動によらず有効なのでしょうか?
Kojiro Saito
Kojiro Saito el 11 de Sept. de 2024
Windowsの環境変数の設定でユーザー環境変数またはシステム環境変数にMCR_CACHE_ROOTを定義した場合は、設定は1度だけでEXEの再起動やPC再起動に依らず有効です。
コマンドプロンプトで設定した場合はそのコマンドプロンプト上から呼び出すプロセスにしか効果が無いので、EXE実行前に毎回実行する必要があります。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre ビッグ データの処理 en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!