0

MATLAB R2015a アプリケーション コンパイラを使用しています。メインの m ファイルを選択した後、MATLAB はアプリケーションの実行に必要ないくつかのファイルを見つけましたが、アプリケーションをコンパイルして実行した後、コンパイルされたアプリケーションは、インストールされたツールボックス (サードパーティ ツールボックス) からいくつかの特定の m ファイルを見つけることができません。

ここで、すべてのツールボックス ファイルをターゲット フォルダーにコピーしますC:\Users\My_Account\AppData\Local\Temp\My_Account\mcrCache8.5\Program_70\DDMDDM上記のように、ネストされたファイルに基づいてMATLABが自動的に作成するツールボックスフォルダーです。このフォルダに他のファイルを追加したい。これどうやってするの?これはこの問題を解決するための良い解決策ですか?

4

1 に答える 1

1

あなたがやろうとしていることはうまくいきません。

MATLAB Compiler でアプリケーションをコンパイルすると、main 関数が依存するすべてのコードが検出され、暗号化されて、後で MATLAB Compiler Runtime (MCR) に対して実行される実行可能ファイルにパッケージ化されます。

MCR は、この方法で暗号化およびパッケージ化されたコードのみを実行できます。通常の暗号化されていない MATLAB ファイルを実行することはできません。そのため、MCR がコード ファイルをアンパッケージするために使用する一時フォルダーに何かをダンプしても、何も達成されません。

代わりに、依存関係の解析中に、メイン関数が依存するすべてのファイルが MATLAB Compiler によって検出されない理由を突き止めてください。

これが発生する理由はさまざまです。依存関係の分析は完全ではありません。たとえば、コードが を呼び出すeval('myfunction')場合、依存関係の分析では が見つかりませんmyfunction。最近、別の原因が問題であるという別の質問に答えました。

このような状況では、プラグマを使用して、 に依存していることを MATLAB Compiler に明示的に伝えることができます。への隠し呼び出しを含むファイル内で、ファイルの先頭に (実際にはどこにでもありますが、通常は先頭に配置します)、myfunction%#functionmyfunction

%#function myfunction

その後、MATLAB Compiler はそれを強制的に依存関係にし、パッケージに含めます。

mccまたは、アプリで、またはアプリ内でパッケージを設定するときに、自分でパッケージdeploytoolに手動で追加することもできます (ただし、依存するmyfunctionものは見つかりません)。myfunction

于 2015-07-21T08:42:58.957 に答える