1

myfunction.mをmatlabでコンパイルしようとしています。この関数は、別のフォルダーで定義されている別の関数(otherfunction.m)を呼び出します。このフォールドはmatlabパスに追加されるため、次のコマンドを実行すると次のようになります。

myfunction

Matlabコマンドウィンドウからすべてが機能します。

私が次のようにコンパイルしようとすると:

mcc -m myfunction.m -I /CompletePathToOtherFunction otherfunction.m

exeファイルが機能しません。どうすればこれを管理できますか?

4

1 に答える 1

2

ドキュメントから:

「コマンドラインで-Iを渡す:

-Iオプションを使用して、現在のコンパイルに使用するパスのリストの先頭にフォルダーを追加できます。この機能は、現在MATLABパス上にないフォルダーにあるファイルをコンパイルする場合に役立ちます。」

したがって-I、otherfunction.m自体のパスではなく、otherfunction.mを含むディレクトリへのパスを渡す必要があると思います。

チェックする他のいくつかの事柄:

  • which otherfunctionの正しいバージョンを使用していることを確認するために使用しますotherfunction(複数のバージョンが存在する場合)。パス上の2つの関数が同じ名前の場合、Matlabは、パス上のどちらか高い方にサイレントにデフォルト設定されます。

  • コンパイルするコードがを使用して関数を呼び出すeval場合、そのディレクトリがmatlabパス上にある場合でも、その関数を含むディレクトリを指定する(または関数を明示的に指定する)必要があります。

  • 他のすべてが失敗した場合は、mccコマンドの代わりにコンパイラーのGUIを使用してみてください。GUIを表示するdeploytoolには、コマンドウィンドウに入力するだけです。GUIでプロジェクトの場所を選択し、「コンソールアプリケーション」(またはその他の必要なもの)を指定したら、「メインファイルの追加」リンクをクリックしてmyfunction.mを追加します。次に、「他の参照/フォルダを追加する」(または同様のもの)リンクを探してクリックし、otherfuncion.mとsecondfunction.mを含むディレクトリを手動で追加します。

于 2012-10-18T23:33:15.097 に答える