Main Content

packNGo

移動するために生成コードを ZIP ファイルにパッケージ化

説明

packNGo(buildInfo,Name,Value) はコード ファイルを ZIP 圧縮ファイルにパッケージ化して、他の開発環境に移動、解凍、およびリビルドできるようにします。名前と値のペアのリストはオプションです。

ZIP ファイルに含めることができるファイルの種類は次のとおりです。

  • ソース ファイル (.c ファイル、.cu ファイル、.cpp ファイルなど)

  • ヘッダー ファイル (.h ファイル、.cuh ファイル、.hpp ファイルなど)

  • ビルド情報オブジェクトを含む MAT ファイル (.mat ファイル)

  • 最終的な実行可能ファイルに必要な非ビルド関連ファイル (.dll ファイルや .txt 情報ファイルなど)

  • ビルドで生成されたバイナリ ファイル (実行可能ファイル .exe やダイナミック リンク ライブラリ .dll など)。

    コード ジェネレーターは、ビルドで生成されたバイナリ ファイル (存在する場合) を ZIP ファイルに含めます。ignoreFileMissing プロパティは、ビルドで生成されたバイナリ ファイルには適用されません。

  • コンパイラ環境用の makefile やプロジェクトの生成に使用する CMake コンフィギュレーション ファイル (CMakeLists.txt)。

この関数を使用してファイルを移動します。そのファイルは、特定のターゲット環境用に再コンパイルしたり、MATLAB® がインストールされていない開発環境でリビルドしたりできます。既定の設定では、関数によってファイルはコード生成フォルダー内の ZIP ファイルにサブフォルダーのない構造としてパッケージ化されます。名前と値のペアを指定して出力をカスタマイズできます。ZIP ファイルの移動後に圧縮ファイルを解凍するには標準の ZIP ユーティリティを使用します。

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

packNGo によってヘッダー ファイルを必ず見つけられるようにするために、関数 addIncludePaths を使用して buildInfo にパスを追加します。

メモ

codegen コマンドを使用してスタンドアロン コードを生成するときに、-package オプションを使用して、コードの生成と、ZIP ファイルでのコードのパッケージ化の両方を 1 つのステップで実行できます。

すべて折りたたむ

ビルド プロセスが完了した後、コマンド ウィンドウから packNGo を実行できます。packNGo を使用して、生成コードをファイル portzingbit.zip に ZIP ファイル パッケージ化します。相対的なファイル階層を維持します。

  1. フォルダーをコード生成フォルダーに変更します。たとえば、MATLAB Coder™ を使用する場合は codegen/dll/zingbit、Simulink® コード生成の場合は zingbit_grt_rtw になります。

  2. ビルドを記述する buildInfo オブジェクトを読み込みます。

  3. packNGopackType プロパティおよび fileName プロパティを設定して実行します。

cd codegen/dll/zingbit;
load buildInfo.mat
packNGo(buildInfo,'packType', 'hierarchical', ...
   'fileName','portzingbit');

コード生成ペインから ZIP ファイルのパッケージ化を設定する場合、コード ジェネレーターはビルド プロセス中に packNGo を使用して ZIP ファイルを出力します。

  1. [コード生成][コードとアーティファクトのパッケージ化] を選択します。オプションで、[Zip ファイル名] を入力します。変更を適用するには、[OK] をクリックします。

  2. モデルを作成します。コード ジェネレーターは、ビルド プロセスの最後に ZIP ファイルを出力します。ZIP ファイルのフォルダー構造は階層的です。

関数 set_param を使用して ZIP ファイルのパッケージ化を設定できます。ビルド プロセスで、コード ジェネレーターによって packNGo を使用して ZIP ファイルが作成されます。

モデル zingbit の ZIP ファイルのパッケージ化を設定するには、次のコマンドを実行します。

set_param('zingbit', 'PackageGeneratedCodeAndArtifacts', 'on');

関数 packNGo でファイル zingbit.zip が作成されます。

ZIP ファイルに別の名前 (例: portzingbit.zip) を指定するには、次のコマンドを実行します。

set_param('zingbit', 'PackageGeneratedCodeAndArtifacts', 'on');
set_param('zingbit', 'PackageName', 'portzingbit.zip')

入力引数

すべて折りたたむ

ビルド プロセス中、コード ジェネレーターはコード生成フォルダー内に buildInfo.mat を配置します。この MAT ファイルには buildInfo オブジェクトが含まれています。このオブジェクトは packNGo が ZIP ファイルを生成するために使用する情報を提供します。

引数を buildInfo オブジェクトとして指定できます。

load buildInfo.mat
packNGo(buildInfo,'packType', 'hierarchical', ...
   'fileName','portzingbit');

または、buildInfo.mat ファイルへのパスとして引数を指定できます。

buildInfoFile = fullfile(pathToBuildFolder, 'buildInfo.mat');
packNGo(buildInfoFile,'packType', 'hierarchical', ...
   'fileName','portzingbit');

または、buildInfo.mat を含むフォルダーへのパスとして引数を指定できます。

packNGo(pathToBuildFolder,'packType', 'hierarchical', ...
   'fileName','portzingbit');

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に表示されなければなりませんが、ペアの順序は重要ではありません。

R2021a より前は、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: 'packType','flat','nestedZipFiles',true

'flat' の場合、生成コード ファイルをサブフォルダーのない単一の構造として ZIP ファイルにパッケージ化します。関数は以下については "パッケージ化しません"

  • 子の buildInfo.mat ファイル。

  • CMakeLists.txt ファイル。

'hierarchical' の場合、生成コード ファイルをプライマリ ZIP ファイルに階層的にパッケージ化します。階層には、最上位モデル、参照モデル、および共有ユーティリティ フォルダーが含まれます。関数は以下もパッケージ化します。

  • フォルダーの対応する buildInfo.mat ファイル。

  • ビルド フォルダーにある CMakeLists.txt ファイル。

例: 'packType','flat'

true の場合、以下の 3 つのセカンダリ ZIP ファイルを含む 1 つのプライマリ ZIP ファイルを作成します。

  • mlrFiles.zipmatlabroot フォルダー ツリー内にあるファイル

  • sDirFiles.zip — コード生成フォルダー内およびその下にあるファイル

  • otherFiles.zipmatlabroot または start フォルダー ツリー内にない必須ファイル

false の場合、フォルダー (たとえばコード生成フォルダーと matlabroot) を含むプライマリ ZIP ファイルを作成します。

例: 'nestedZipFiles',true

'fileName' と値のペアを指定しない場合、この関数は modelOrFunctionName.zip という名前の ZIP ファイルにファイルをパッケージ化し、コード生成フォルダーに ZIP ファイルを配置します。

'fileName' を値 'myName' で指定する場合、この関数は myName.zip をコード生成フォルダーに作成します。

プライマリ ZIP ファイルに別の場所を指定するには、その場所への絶対パス fullPath/myName.zip を指定します。

例: 'fileName','/home/user/myModel.zip'

true の場合、コードをビルドするのに必要な最低限のヘッダー ファイルのみを ZIP ファイルに含めます。

false の場合、インクルード パスにあるヘッダー ファイルを ZIP ファイルに含めます。

例: 'minimalHeaders',true

false の場合、ZIP ファイルに html フォルダーを含めません。

true の場合、ZIP ファイルに html フォルダーを含めます。

例: 'includeReport',false

false の場合、解析エラー時に終了します。

true の場合、解析エラー時に終了しません。

例: 'ignoreParseError',false

false の場合、ファイル不足エラー時に終了します。

true の場合、ファイル不足エラー時に終了しません。

例: 'ignoreFileMissing',false

制限

  • この関数は、*.c*.cppcuh、および *.h の拡張子をもつソース ファイルのみを処理します。この関数はコンパイルのフラグ、定義、および makefile をサポートしません。

  • 関数は、再利用可能なライブラリ サブシステムのソース ファイルをパッケージ化しません。

  • 必要のないファイルが含まれる可能性があります。関数は、ビルド情報に記録されたソース パスおよびインクルード パスからの追加のファイルを、これらのファイルが使用されていない場合でも検索する場合があります。

  • MATLAB Coder の場合、この関数は既定の構成設定を使用して生成する、メイン ソース ファイルとヘッダー ファイルの例をパッケージ化しません。メイン ファイルの例をパッケージ化するには、コード生成を構成し、main 関数の例を生成してコンパイルし、コードを生成してからビルド ファイルをパッケージ化します。

  • packNGo は、MEX ターゲット用に生成されたコードをパッケージ化しません。

バージョン履歴

R2006b で導入