テストの最初のフェーズでは、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 スクリプトから使用する方法がわかりません。
それはできますか?作成して使用するには、どの手順に従う必要がありますか?