1

テストの最初のフェーズでは、S-Function としてコンパイルされた Matlab Simulink 環境 (2010b 32 ビット) でコードを実行する必要があります。コンパイラは、Visual Studio 2010 に付属しているものです。

現在、次のようなコードをコンパイルするスクリプトがあります。

mex -c -v foo_main.c
mex -c -v foo_1.c
mex -c -v foo_2.c
% etc...


mex -v foo_wrapper.c foo_main.obj foo_1.obj foo_2.obj % etc...

ここ数年でファイル数が大幅に増加し、コンパイルにかなりの時間がかかりました。

私の質問は、*.objが対応するものに対応していないかどうかを確認し*.c、必要な場合にのみ再コンパイルする方法が存在するかどうかです。

ケースバイケースでスクリプトを変更する必要があるため、特別なスクリプトを作成することには慎重です。これは、エラーや不要なリスクが発生しやすい道だと考えています。


編集:

私の現在の解決策はdate、ファイルのプロパティを取得して比較することです。

c_file = dir(fullfile(pwd,'\\foo.c'));
obj_file = dir(fullfile(pwd,'\\foo.obj'));

if (datenum(c_file.date) > datenum(obj_file.date))
    mex -c -v foo.c
end

これが最もクリーンな解決策ではないことを理解しており、コメントで msはファイルを使用することを提案していnmakeます。作成したことがなく、Matlab スクリプトから使用する方法がわかりません。

それはできますか?作成して使用するには、どの手順に従う必要がありますか?

4

0 に答える 0