2016-05-11 7 views
1

私はデプロイするためにコンパイルする必要のあるMATLABスクリプトを持っています。私は 'mcc'コマンドを使用していますが、ツールボックス(PRTools(http://37steps.com/software/)とdd_tools(http://prlab.tudelft.nl/david-tax/dd_tools.html))も含める必要があります。私はaddpath()コマンドを使ってインクルードしようとしていますが、動作しません。私はこれらのツールボックスをどのように組み込むのか分かりません。私は使用しようとしました:ツールボックスを含むデプロイ用にMATLABをコンパイル

if ~isdeployed 
    addpath PRTools 
    addpath dd_tools 
end 

しかし、それはうまくいきません。 mccでの展開については

答えて

3

は、アプリケーションをコンパイルするのではなく、あなたのコード内からaddpathを呼び出す前pathtoolまたはaddpathを使用して)MATLABパスにパスを追加する必要があります。

mccは、コードを静的に分析して、実行可能ファイルに何を含める必要があるかを判断します。この静的コード分析の一部には、コード内のすべての関数呼び出しの検索と、対応するソースファイルの検索が含まれます。 addpathからにコードを呼び出すので、MATLABはすべてツールボックス関数を正しく見つけることができません(実行時にパスに動的に追加され、コードは静的に解析されるため)。

最初にMATLABパスに追加すると、mccはコードを静的に解析し、必要なすべてのツールボックス関数を見つけ出し、結果として得られる実行可能ファイルに含めることができます。

パスを変更するよりクリーンな方法は、mccを呼び出すときに-I optionを使用して含める特定のフォルダを指定することです。

-I新しいフォルダパスをインクルードフォルダのリストに追加します。各-Iオプションは、検索するパスのリストの先頭にフォルダを追加します。例えば、

-I <directory1> -I <directory2>

セットアップ検索パスはdirectory1ようdirectory2続く、MATLABファイルに対して最初に検索されます。このオプションは、MATLABパスが使用できないスタンドアロンのコンパイルで重要です。あなたのケースでは

toolboxsに問題があるように思わ

mcc -m main.m -I PRTools -I dd_tools 
+0

ようなものになるだろう.... – user53064

関連する問題