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 ユーティリティを使用して圧縮ファイルを解凍します。

GPU Coder™ を使用して生成されたコードは、サードパーティのコンパイラとライブラリを利用して実行可能ファイルのビルドと実行を行うため、移動先の開発環境もその要件を満たしていなければなりません。詳細については、前提条件となる製品のインストール前提条件となる製品の設定を参照してください。

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

packNGo でヘッダー ファイルが確実に検出されるようにするには、関数 addIncludePaths を使用してそのパスを buildInfo に追加します。

メモ

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

すべて折りたたむ

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

  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 を作成します。

たとえば portzingbit.zip という別の名前を 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 ファイルに含めます。

GPU Coder では、'minimalHeaders' オプションを false に設定する必要があります。

例: 'minimalHeaders',true

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

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

例: 'includeReport',false

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

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

例: 'ignoreParseError',false

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

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

例: 'ignoreFileMissing',false

制限

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

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

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

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

バージョン履歴

R2006b で導入