Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

別の開発環境にコードを移動する場合

モデルの静的コード ファイルと生成コード ファイルを別の開発環境に移動する必要がある場合は、Pack-and-Go ユーティリティを使用します。この状況は、システムまたは統合開発環境 (IDE) に MATLAB® 製品および Simulink® 製品が含まれていない場合に発生します。

コード再配置

pack-n-go ユーティリティは、コード生成後のビルド プロセスをツールを使ってカスタマイズし、関数 packNGo を使って実行可能イメージのビルドに必要なファイルを見つけてパッケージ化します。ファイルは圧縮ファイルとしてパッケージ化され、移動先では標準 zip ユーティリティを使って解凍することができます。

ユーザー インターフェイスを使用したコードのパッケージ化

ユーザー インターフェイスを使用してモデルのコードをパッケージ化し、移動するには、次の手順に従います。

  1. [コンフィギュレーション パラメーター] ダイアログ ボックスで、[コードとアーティファクトのパッケージ化] を選択します。このオプションは、コード生成後に生成コードとアーティファクトを移動するためにパッケージ化する関数 packNGo を実行するようにビルド プロセスを構成します。

  2. [Zip ファイル名] フィールドに、生成コードやアーティファクトを移動するためにパッケージ化する zip ファイルの名前を入力します。ファイル名は .zip 拡張子をつけてもつけなくても指定できます。拡張子を指定しないか、.zip 以外の拡張子を指定した場合、zip ユーティリティが拡張子 .zip を付加します。値を指定しない場合、ビルド プロセスは model.zip という名前を使用します。ここで、model はコードが生成される最上位モデルの名前を示します。

  3. 変更を適用し、モデルのコードを生成します。移動可能であることを確認するために、生成された zip ファイルを検査します。使用している zip ツールによっては、パッケージを解凍せずにファイルを開いて検査できることがあります。

  4. zip ファイルを移動先の開発環境に移動してファイルを解凍します。

コマンド ライン ユーザー インターフェイスを使用したコードのパッケージ化

コマンド ライン ユーザー インターフェイスを使用してモデルのコードをパッケージ化し、移動するには、次の手順に従います。

zip ファイルの構造の選択

モデル ビルド用のファイルを生成してパッケージ化する前に、ファイルをサブフォルダーのない、あるいは階層的なフォルダーに入れてパッケージ化するかどうかを決定します。既定の設定では、関数 packNGo はファイルすべてを 1 つのフォルダー、つまりサブフォルダーのない構造に入れてパッケージ化します。

条件使用する構造
ファイルの移動先が生成された makefile を使用しない IDE である。または、コードが必要な静的ファイルの相対位置に依存しない。単一でサブフォルダーのない構造
生成された makefile を使用する、または、コードがファイルの相対位置に依存するため、移動先の開発環境で元の環境のフォルダー構造を維持しなければならない。階層構造

階層構造を使用すると、関数 packNGo は二重構造の zip ファイルを作成し、主 zip ファイルの中には次の複数の従属 zip ファイルが入ります。

  • mlrFiles.zip - matlabroot フォルダー ツリー内のファイル

  • sDirFiles.zip - モデルのコード生成に使用したビルド フォルダー内のファイルとそのサブフォルダー内のファイル

  • otherFiles.zip - matlabroot フォルダーや start フォルダー ツリーに入っていない必要なファイル。

従属 zip フォルダー内のファイル パスは主 zip ファイルのルート フォルダーに相対的なパスとなり、元の開発フォルダー構造を保持します。

zip ファイルの名前の選択

既定の設定では、関数 packNGo によって model という名前がプライマリ zip ファイルに与えられます。別の名前を付けることもできます。ファイル タイプの拡張子を付けずにファイル名を指定すると、関数は . を名前の後に付けます。

モデル コードの zip ファイルへのパッケージ化

PostCodeGenCommand コンフィギュレーション パラメーター、関数 packNGo、およびモデルのビルド情報オブジェクトを使用してモデル コード ファイルをパッケージ化します。パッケージ化作業のセット アップには次の情報を使用できます。

  • システムが生成したビルド情報オブジェクト。

    この場合、関数 set_param を使ってコンフィギュレーション パラメーター PostCodeGenCommand を設定することにより、モデル コードが生成される前に、関数 packNGo が明示的に呼び出されるようにします。以下に例を示します。

    set_param(bdroot, 'PostCodeGenCommand', 'packNGo(buildInfo);');

    モデルのコードを生成してディスクに書き出した後、makefile を生成する前に、このコマンドはビルド プロセスが packNGo への呼び出しを評価するように指示します。このコマンドは、現在選択されているモデルに対して、システムが生成したビルド情報オブジェクトを使用します。

  • プログラムを使って作成したビルド情報オブジェクト。

    この場合、関数 packNGo に渡すビルド情報オブジェクトに含めるパスやファイルは他のビルド情報関数を使って選択できます。以下に例を示します。

    .
    .
    .
    myModelBuildInfo = RTW.BuildInfo;
    addSourceFiles(myModelBuildInfo, {'test1.c' 'test2.c' 'driver.c'});
    .
    .
    .
    packNGo(myModelBuildInfo);

次の例では、packNGo の既定の動作を変更する方法を示します。

目的... 指定項目
ファイル パッケージの構造を階層構造に変更packNGo(buildInfo, 'packType' 'hierarchical');
プライマリ zip ファイルの名前を変更packNGo(buildInfo, 'fileName' 'zippedsrcs');
ファイル パッケージの構造を階層構造に変更し、主 zip ファイルの名前を変更packNGo(buildInfo, 'packType' 'hierarchical'...
'fileName' 'zippedsrcs');
インクルード パスにあるヘッダー ファイルを zip ファイルにインクルードするpackNGo(buildInfo, 'minimalHeaders' false);
解析エラーと不足しているファイルに対する警告を生成packNGo(buildInfo, 'ignoreParseError' true...
'ignoreFileMissing' true);

メモ

関数 packNGo は最初の packNGo 引数で渡されたビルド情報を変更する場合があります。モデル コードのパッケージ化の一部として、packNGo はモデルのビルド情報に記録されたソース パスおよびインクルード パスから追加ファイルを検索してビルド情報に追加します。

生成された zip ファイルの検査

移動可能であることを確認するには、生成された zip ファイルを検査します。使用している zip ツールによっては、パッケージを解凍せずにファイルを開いて検査できることがあります。ファイルを解凍する場合、階層構造でモデル コード ファイルをパッケージ化した場合は、メインの zip ファイルと 2 次的な zip ファイルを解凍する必要があります。従属 zip ファイルを解凍すると、ファイルの相対パスが維持されます。

zip ファイルの移動と解凍

生成された zip ファイルを移動先の開発環境に移動してファイルを解凍します。

コード パッケージ化の例

この例では、コマンド ライン インターフェイスを使用してモデル例 rtwdemo_rtwintro 用に生成したコード ファイルをパッケージ化する方法を説明します。

  1. 作業フォルダーを書き込み可能フォルダーとして設定します。

  2. モデル rtwdemo_rtwintro を開いて作業フォルダーにそのコピーを保存します。

  3. 次の MATLAB コマンドを入力します。

    set_param('rtwdemo_rtwintro', 'PostCodeGenCommand',...
    'packNGo(buildInfo, ''packType'' ''hierarchical'')');

    関数 packNGo を呼び出す文字配列内では、文字配列 'packType''hierarchical' が入れ子になっているので、一重引用符を二重に使用しなければなりません。

  4. モデルのコードを生成します。

  5. 生成された zip ファイル rtwdemo_rtwintro.zip を検査します。zip ファイルには、2 つのセカンダリ zip ファイル、mlrFiles.zipsDirFiles.zip が含まれています。

  6. zip ファイル mlrFiles.zipsDirFiles.zip を検査します。

  7. zip ファイルを移動先の開発環境に移動して解凍します。

制限

関数 packNGo

この関数に適用される制限の詳細については packNGo を参照してください。

既定以外の拡張子をもつ実行可能ファイル

ビルド プロセスがテンプレート makefile アプローチを使用する場合、packNGo はリンカー ツールで指定された実行可能ファイル拡張子を使用して、パッケージングを必要とするバイナリ アーティファクトを判別します。

既定値ではない拡張子をもつ実行可能ファイルを生成する場合、テンプレート makefile と関連付けられたツールチェーンにその拡張子が保存されていることを確認します。詳細については、テンプレート makefile とツールチェーンの関連付けを参照してください。

ビルド プロセスがツールチェーンで保存さている拡張子とは異なる拡張子をもつ実行可能ファイルを生成する場合、packNGo はその実行可能ファイルをパッケージ化しません。

関連するトピック