Main Content

ビルド設定の構成

ビルド タイプの指定

ビルド タイプ

MATLAB® Coder™ は以下の出力タイプを生成できます。

  • MEX 関数

  • スタンドアロン C/C++ コード

  • スタンドアロン C/C++ コードおよびスタティック ライブラリへのコンパイル

  • スタンドアロン C/C++ コードおよびダイナミック リンク ライブラリへのコンパイル

  • スタンドアロン C/C++ コードおよび実行可能ファイルへのコンパイル

    メモ

    実行可能ファイルを生成する場合は、C/C++ 実行可能ファイルの main 関数の指定で説明されているように、main 関数を含む C/C++ ファイルを指定しなければなりません。

ファイルが生成される場所

既定では、MATLAB Coder は出力タイプに基づいた出力フォルダーにファイルを生成します。詳細は、生成ファイルと場所を参照してください。

メモ

MATLAB Coder は、同じコードまたはプロジェクトに対して同じタイプの出力を生成するたびに、前回ビルドしたファイルを削除します。新しいビルドでファイルが書き換えられないようにする場合は、ファイルを別の場所にコピーしてからビルドを開始します。

MATLAB Coder アプリを使用したビルド タイプの指定

  1. [生成] ダイアログ ボックスを開くために、[コード生成] ページの [生成] 矢印 をクリックします。

  2. [ビルド タイプ] を次のいずれかに設定します。

    • ソース コード

    • MEX

    • スタティック ライブラリ

    • ダイナミック ライブラリ

    • 実行可能ファイル

[ソース コード] を選択すると、MATLAB Coder は make コマンドを実行せず、コンパイルされたオブジェクト コードも生成しません。MATLAB コードの変更と C/C++ コードの生成を繰り返して生成されたコードを検査するときに、このオプションを指定すると時間を短縮できます。このオプションは [コード生成のみ] ボックスを選択して [スタティック ライブラリ] を選択するのと同等です。

コード生成では、MEX 関数に対して、他のビルド タイプで使用されるものとは異なる一連の構成パラメーターが使用されます。出力タイプを [MEX 関数][ソース][スタティック ライブラリ][ダイナミック ライブラリ] または [実行可能ファイル] の間で切り替える場合は、これらの設定を確認してください。

特定の構成パラメーターは、MEX コードとスタンドアロン コードの両方の生成に関連します。出力タイプが [MEX 関数] のときに、このようなパラメーターのいずれかを有効にし、その同じ設定を C/C++ コードの生成に使用する場合、[C/C++ スタティック ライブラリ][C/C++ ダイナミック ライブラリ] および [C/C++ 実行ファイル] に対して再度有効にしなければなりません。

コマンド ラインでのビルド タイプの指定

-config オプションを使用して codegen を呼び出します。たとえば、入力パラメーターを取らない基本関数 foo があるとします。以下の表は、foo のコンパイル時に異なる出力タイプを指定する方法を示しています。基本関数が入力パラメーターをもっている場合は、それらの入力を指定しなければなりません。詳細は、エントリポイント関数の入力のプロパティの指定を参照してください。

メモ

C が、MATLAB Coder でコードを生成する際の既定の言語です。C++ コードを生成するには、コード生成用言語の指定を参照してください。

生成するもの使用するコマンド
MEX 関数 (既定のコード生成オプションを使用)

codegen foo

MEX 関数 (コード生成オプションを指定)

cfg = coder.config('mex');
% Set configuration parameters, for example,
% enable a code generation report
cfg.GenerateReport=true;
% Call codegen, passing the configuration 
% object
codegen -config cfg foo

スタンドアロン C/C++ コードおよびライブラリへのコンパイル (既定のコード生成オプションを使用)
codegen -config:lib foo
スタンドアロン C/C++ コードおよびライブラリへのコンパイル (コード生成オプションを指定)

cfg = coder.config('lib');
% Set configuration parameters, for example, 
% enable a code generation report
cfg.GenerateReport=true;
% Call codegen, passing the configuration 
% object
codegen -config cfg foo

スタンドアロン C/C++ コードおよび実行可能ファイルへのコンパイル (既定のコード生成オプションを使用し、コマンド ラインで main.c ファイルを指定)

codegen -config:exe main.c foo

メモ

C/C++ 実行可能ファイルを生成するには、main 関数を指定しなければなりません。C/C++ 実行可能ファイルの main 関数の指定を参照してください。

スタンドアロン C/C++ コードおよび実行可能ファイルへのコンパイル (コード生成オプションを指定)

cfg = coder.config('exe');
% Set configuration parameters, for example,
%  specify main file
cfg.CustomSource = 'main.c';
cfg.CustomInclude = 'c:\myfiles';
codegen -config cfg foo

メモ

C/C++ 実行可能ファイルを生成するには、main 関数を指定しなければなりません。C/C++ 実行可能ファイルの main 関数の指定を参照してください。

コード生成用言語の指定

MATLAB Coder は C または C++ のライブラリや実行可能ファイルを生成できます。C が既定の言語です。[プロジェクトの設定] ダイアログ ボックスやコマンド ラインで、言語を明示的に指定できます。

MATLAB Coder アプリを使用した言語の指定

  1. [生成] ダイアログ ボックスを開くために、[コード生成] ページの [生成] 矢印 をクリックします。

  2. [言語][C] または [C++] に設定します。

    メモ

    C++ を指定すると、MATLAB CoderC コードを .cpp ファイルにラップします。C++ コンパイラを使用し、外部の C++ アプリケーションとインターフェイスを取ることができます。MATLAB CoderC++ クラスを生成しません。

コマンド ライン インターフェイスを使用した言語の指定

  1. ターゲット言語に適したコンパイラを選択します。

  2. コード生成の構成オブジェクトを作成します。たとえば、ライブラリの場合は以下のとおりです。

    cfg = coder.config('lib');

  3. TargetLang プロパティを 'C' または 'C++' に設定します。以下に例を示します。

    cfg.TargetLang = 'C++';

    メモ

    C++ を指定すると、MATLAB CoderC コードを .cpp ファイルにラップします。これで C++ コンパイラを使用し、外部の C++ アプリケーションとインターフェイスで接続できるようになります。MATLAB CoderC++ クラスを生成しません。

参考

出力ファイル名の指定

MATLAB Coder アプリを使用した出力ファイル名の指定

  1. [生成] ダイアログ ボックスを開くために、[コード生成] ページの [生成] 矢印 をクリックします。

  2. [出力ファイル名] フィールドにファイル名を入力します。

メモ

ファイル名にスペースを含めないでください。

既定では、最初のエントリポイントである MATLAB ファイルの名前が fcn1 の場合、出力ファイル名は次のようになります。

  • fcn1 (C/C++ ライブラリおよび実行可能ファイル用)。

  • fcn1_mex (MEX 関数用)。

既定では、MATLAB Coder はフォルダー project_folder/codegen/target/fcn1 にファイルを生成します。

  • project_folder は現在のプロジェクト フォルダーです。

  • target は次のようになります。

    • mex (MEX 関数用)

    • lib (C/C++ スタティック ライブラリ用)

    • dll (C/C++ ダイナミック ライブラリ用)

    • exe (C/C++ 実行可能ファイル用)

コマンド ラインを使用する場合

関数 codegen-o オプションを使用します。

出力ファイルの場所の指定

MATLAB Coder アプリを使用した出力ファイルの場所の指定

出力ファイルの場所に次を含めることはできません。

  • スペース (スペースを使用すると、オペレーティング システムの構成によっては、コード生成に失敗する可能性があります)

  • タブ

  • \, $, #, *, ?

  • 非 7 ビット ASCII 文字 (日本語など)

  1. [生成] ダイアログ ボックスを開くために、[コード生成] ページの [生成] 矢印 をクリックします。

  2. (要件に応じて) [ビルド タイプ][ソース コード][スタティック ライブラリ][ダイナミック ライブラリ] または [実行可能ファイル] に設定します。

  3. [詳細設定] をクリックします。

  4. [パス] タブをクリックします。

    [ビルド フォルダー] フィールドの既定の設定は [プロジェクト フォルダーのサブフォルダー] です。既定では、MATLAB Coder はフォルダー project_folder/codegen/target/fcn1 にファイルを生成します。

    • fcn1 はアルファベット順で最初のエントリポイント ファイルの名前です。

    • target は次のようになります。

      • mex (MEX 関数用)

      • lib (C/C++ スタティック ライブラリ用)

      • dll (C/C++ ダイナミック リンク ライブラリ用)

      • exe (C/C++ 実行可能ファイル用)

  5. 出力場所を変更するには、以下のいずれかを行います。

    • [ビルド フォルダー][MATLAB の現在の作業フォルダーのサブフォルダー] に設定します。

      MATLAB Coder はファイルを MATLAB_working_folder/codegen/target/fcn1 フォルダーに生成します。

    • [ビルド フォルダー][指定したフォルダー] に設定します。[ビルド フォルダー名] フィールドにフォルダーのパスを指定します。

コマンド ラインを使用する場合

関数 codegen-d オプションを使用します。

パラメーターの指定方法

作業対象使用詳細
MATLAB Coder アプリ[プロジェクトの設定] ダイアログ ボックス MATLAB Coder アプリを使用したビルド構成パラメーターの指定
コマンド ラインの codegen (少数のパラメーターを指定)構成オブジェクト構成オブジェクトを使用したコマンド ラインでのビルド構成パラメーターの指定
ビルド スクリプト内の codegen
コマンド ラインの codegen (多数のパラメーターを指定)構成オブジェクトのダイアログ ボックスダイアログ ボックスを使用したコマンド ラインでのビルド構成パラメーターの指定

ビルド構成パラメーターの指定

ビルド構成パラメーターは、MATLAB Coder の [プロジェクトの設定] ダイアログ ボックス、コマンド ラインまたは構成オブジェクトのダイアログ ボックスで指定できます。

MATLAB Coder アプリを使用したビルド構成パラメーターの指定

  1. [生成] ダイアログ ボックスを開くために、[コード生成] ページの [生成] 矢印 をクリックします。

  2. (要件に応じて) [ビルド タイプ][ソース コード][スタティック ライブラリ][ダイナミック ライブラリ] または [実行可能ファイル] に設定します。

  3. [詳細設定] をクリックします。

    [プロジェクトの設定] ダイアログ ボックスには、選択した出力タイプに適用可能な一連の構成パラメーターが表示されます。コード生成では、MEX 関数に対して、他のビルド タイプで使用されるものとは異なる一連の構成パラメーターが使用されます。出力タイプを [MEX 関数][ソース コード][スタティック ライブラリ][ダイナミック ライブラリ] または [実行可能ファイル] の間で切り替える場合は、これらの設定を確認してください。

    特定の構成パラメーターは、MEX コードとスタンドアロン コードの両方の生成に関連します。出力タイプが [MEX 関数] のときに、このようなパラメーターのいずれかを有効にし、その同じ設定を C/C++ コードの生成に使用する場合、[C/C++ スタティック ライブラリ][C/C++ ダイナミック ライブラリ] および [C/C++ 実行ファイル] に対して再度有効にしなければなりません。

  4. 必要に応じてパラメーターを変更します。タブ上のパラメーターの詳細については、[ヘルプ] をクリックしてください。

    パラメーター設定の変更はすぐに適用されます。

構成オブジェクトを使用したコマンド ラインでのビルド構成パラメーターの指定

構成オブジェクトの型.  codegen は構成オブジェクトを使用してコード生成環境をカスタマイズします。以下の表は、利用可能な構成オブジェクトの一覧です。

構成オブジェクト説明

coder.CodeConfig

使用可能な Embedded Coder® ライセンスがない場合や、Embedded Coder ライセンスの使用を無効にしている場合に、C/C++ ライブラリや実行可能ファイルを生成するためのパラメーターを指定します。

coder.EmbeddedCodeConfig

Embedded Coder ライセンスが使用可能な場合に、C/C++ ライブラリや実行可能ファイルを生成するためのパラメーターを指定します。

coder.HardwareImplementation

ターゲット ハードウェア実行のパラメーターを指定します。指定しなかった場合、codegen は MATLAB ホスト コンピューターと互換性のあるコードを生成します。

coder.MexCodeConfig

MEX コード生成のためのパラメーターを指定します。

構成オブジェクトの取り扱い.  構成オブジェクトを使用してコード生成環境をカスタマイズするには、以下の手順を行います。

  1. MATLAB ワークスペースで、構成オブジェクトの作成で説明されているように、構成オブジェクト変数を定義します。

    たとえば、C スタティック ライブラリを生成するための構成オブジェクトを生成するには次のようにします。

    cfg = coder.config('lib');
    % Returns a coder.CodeConfig object if no
    % Embedded Coder license available. 
    % Otherwise, returns a coder.EmbeddedCodeConfig object.

  2. 必要に応じて、以下のいずれかの方法を使用して構成オブジェクトのパラメーターを変更します。

  3. -config オプションを使用して、関数 codegen 呼び出します。構成オブジェクトを引数に指定します。

    -config オプションは、codegen に対して、構成プロパティの値に基づいてターゲット用のコードを生成するよう指示します。次の例では、codegen は最初のステップで定義したコード生成構成オブジェクト cfg のパラメーターに基づいて、MATLAB 関数 foo から C スタティック ライブラリを生成します。

    codegen -config cfg foo

    -config オプションはビルドする出力タイプを指定します。この場合は C スタティック ライブラリです。詳細は、codegen を参照してください。

構成オブジェクトの作成.  構成オブジェクトは、MATLAB ワークスペースで定義できます。

作成するもの使用するコマンド
MEX 構成オブジェクト

coder.MexCodeConfig
cfg = coder.config('mex');
スタンドアロンの C/C++ ライブラリまたは実行可能ファイルを生成するためのコード生成構成オブジェクト

coder.CodeConfig
% To generate a static library
cfg = coder.config('lib');
% To generate a dynamic library
cfg = coder.config('dll')
% To generate an executable
cfg = coder.config('exe');

メモ

Embedded Coder ライセンスが使用できる場合に、coder.EmbeddedCodeConfig オブジェクトを作成します。

コンカレント ライセンスを使用していて、Embedded Coder ライセンスのチェックアウトを無効にするには、以下のいずれかのコマンドを使用します。

cfg = coder.config('lib', 'ecoder', false)

cfg = coder.config('dll', 'ecoder', false)

cfg = coder.config('exe', 'ecoder', false)

組み込みターゲット用のスタンドアロンの C/C++ ライブラリまたは実行可能ファイルを生成するためのコード生成構成オブジェクト

coder.EmbeddedCodeConfig
% To generate a static library
cfg = coder.config('lib');
% To generate a dynamic library
cfg = coder.config('dll')
% To generate an executable
cfg = coder.config('exe');

メモ

Embedded Coder ライセンスが必要です。ライセンスがない場合は、coder.CodeConfig オブジェクトが作成されます。

ハードウェア実行構成オブジェクト

coder.HardwareImplementation
hwcfg = coder.HardwareImplementation

各構成オブジェクトに付属する一連のパラメーターは既定値に初期化されています。コマンド ラインでのドット表記を使用した構成オブジェクトの変更で説明されているように、これらの設定を変更できます。

コマンド ラインでのドット表記を使用した構成オブジェクトの変更.  ドット表記を使用して、構成オブジェクトのパラメーター値を 1 つずつ変更できます。次の構文を使用します。

configuration_object.property = value

ドット表記では代入ステートメントを使用して構成オブジェクトのプロパティを変更します。

  • C/C++ コードの生成中に main 関数を指定する方法

    cfg = coder.config('exe');
    cfg.CustomInclude = 'c:\myfiles';
    cfg.CustomSource = 'main.c';
    codegen -config cfg foo
    

  • C/C++ スタティック ライブラリの生成後、コード生成レポートを自動的に生成、起動する方法

    cfg = coder.config('lib');
    cfg.GenerateReport= true;
    cfg.LaunchReport = true;
    codegen -config cfg  foo

構成オブジェクトの保存.  構成オブジェクトは、自動的には MATLAB セッション間で持続しません。以下のいずれかの方法を使用して設定を保存します。

 構成オブジェクトを MAT ファイルに保存して、次のセッションで MAT ファイルを読み込む

 構成オブジェクトの作成とプロパティの設定を行うスクリプトを作成します。

ダイアログ ボックスを使用したコマンド ラインでのビルド構成パラメーターの指定

構成オブジェクトを作成した後、構成パラメーター ダイアログ ボックスを使用してオブジェクトのプロパティを変更できます。コマンド ライン ワークフローで対話的に構成パラメーターを指定を参照してください。