メインコンテンツ

コード生成およびビルド設定の構成

ビルド タイプ (MEX、lib、dll、または exe) と言語 (C または C++) を指定して、MATLAB® Coder™ ソフトウェアを構成します。追加の設定を使用して、生成コードをビルドする場所の指定、ターゲット固有の最適化の適用、可変サイズのサポートの有効化、生成コードにコメントを含める指定、およびその他のカスタマイズの適用を行います。コード生成およびビルド設定は、コマンド ラインまたは MATLAB Coder アプリを使用して変更できます。

ビルド タイプと言語

使用可能なビルド タイプと言語

MATLAB Coder ソフトウェアは次のタイプのビルドを生成できます。

  • C/C++ MEX 関数

  • スタンドアロン C/C++ コード、ソース コードのみ

  • スタンドアロン C/C++ コード、スタティック ライブラリにコンパイル

  • スタンドアロン C/C++ コード、ダイナミック リンク ライブラリにコンパイル

  • スタンドアロン C/C++ コード、実行可能ファイルにコンパイル

C が、MATLAB Coder ソフトウェアでコードを生成する際の既定の言語です。C++ コードを生成するには、MATLAB Coder アプリまたはコマンド ラインでコード生成言語を明示的に指定する必要があります。MATLAB Coder ソフトウェアにより、サポートされているインストール済みのコンパイラが自動的に検索され、使用されます。既定のコンパイラを変更する場合は、既定のコンパイラの変更を参照してください。

既定では、コード ジェネレーターがコードを生成するフォルダーは出力タイプによって決まります。コード ジェネレーターは、同じエントリポイント関数または MATLAB Coder プロジェクトに対して同じタイプの出力を生成するたびに、以前のビルドのファイルを上書きします。前のビルドのファイルを保持する場合は、ファイルを別の場所にコピーしてからビルドを開始します。あるいは、生成されたファイルの名前または場所を変更します。生成ファイルと場所を参照してください。

出力タイプと言語の指定

ビルド タイプを指定するには、次のようにします。

  • ツールストリップの [MATLAB Coder] タブで、[言語] をクリックして出力言語を選択します。[出力タイプ] をクリックして出力タイプを選択します。

  • コマンド ラインで、-config および -lang オプションを指定して codegen 関数を呼び出します。

  • 構成パラメーター [言語][ビルド タイプ] を設定します。

make コマンドを呼び出したりコンパイルされたオブジェクト コードを生成したりせずにソース コードのみを生成するには、次のいずれかの方法を使用します。

  • ツールストリップの [MATLAB Coder] タブで [コード生成] をクリックします。

  • コマンド ラインで -c オプションを指定して codegen を使用します。

  • 構成パラメーター [コード生成のみ] を設定します。

MATLAB コードの変更と C/C++ コードの生成を繰り返して生成されたコードを検査するときに、このオプションを指定すると時間を短縮できます。独自のコンパイラを使用して生成コードをコンパイルする場合にも、このオプションを使用できます。

次の表に、codegen コマンドを使用して MATLAB 関数 foo のさまざまなタイプの C または C++ ビルドを生成する方法を示します。

生成するビルド タイプコマンド
C MEX 関数
codegen foo
スタンドアロン C++ コード、スタティック ライブラリにコンパイル、ソースコードのみを生成
codegen -config:lib -lang:c++ -c foo
スタンドアロン C コード、ダイナミック リンク ライブラリにコンパイル
codegen -config:dll foo

スタンドアロン C++ コード、実行可能ファイルにコンパイル、main 関数を含むソース ファイルを指定

C/C++ 実行可能ファイルの main 関数の指定を参照してください。

codegen -config:exe main.cpp -lang:c++ foo

追加のビルド構成設定の指定

ビルド タイプと言語に加えて、MATLAB Coder アプリ、コマンド ライン、または構成オブジェクトのダイアログ ボックスを使用して、追加のビルド構成設定を指定できます。次の表を使用して、どの指定方法を使用するかを決定してください。

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

MATLAB Coder アプリでのビルド構成パラメーターの指定

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

特定の構成パラメーターは MEX コードとスタンドアロン コードの両方の生成に使用されます。ビルド タイプが [MEX] のときに、このようなパラメーターのいずれかを変更し、同じ設定をスタンドアロン コードの生成に使用する場合、パラメーターを再度設定しなければなりません。

パラメーター設定に対する変更は即時に有効になります。

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

codegen 関数で構成オブジェクトを使用して、コード生成用の環境をカスタマイズします。次の表に、使用可能な構成オブジェクトと、構成オブジェクトの作成に使用できるコマンド例をリストします。

構成オブジェクト説明作成コマンドの例

coder.MexCodeConfig

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

cfg = coder.config("mex");

coder.CodeConfig

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

% 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");

coder.EmbeddedCodeConfig

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

% 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");

構成オブジェクトのパラメーターは既定値に初期化されます。構成オブジェクトを変更してコード生成環境をカスタマイズするには、以下の手順を行います。

  1. MATLAB ワークスペースで、構成オブジェクトを作成します。

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

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

    -config オプションは、構成オブジェクトの設定を使用してターゲットの MATLAB のコードを生成するように codegen に指示します。たとえば、コマンド ラインで、スタティック ライブラリ構成オブジェクト cfg を作成します。次に、この構成オブジェクトを指定して codegen コマンドを使用して、MATLAB foo のコードを生成します。

    cfg = coder.config("lib");
    codegen -config cfg foo

コマンド ラインでのドット表記を使用した構成オブジェクトの変更.  ドット表記を使用して、構成オブジェクトのパラメーター値を 1 つずつ変更できます。"ドット表記" 構文では、オブジェクト変数とプロパティ名をドット (.) でつなげて使用します。

object.PropertyName = value

以下に例を示します。

  • C コード生成用の main 関数を指定します。

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

    C/C++ 実行可能ファイルの main 関数の指定を参照してください。

  • C++ スタティック ライブラリの生成後、コード生成レポートを自動的に生成して起動します。

    cfg = coder.config("lib");
    cfg.TargetLang = "C++";
    cfg.GenerateReport= true;
    cfg.LaunchReport = true;
    codegen -config cfg foo

構成オブジェクトの保存

構成オブジェクトは、自動的には MATLAB セッション間で持続しません。設定を保持するには、構成オブジェクトを再作成するスクリプトを作成するか、構成オブジェクトを MAT ファイルに保存します。

たとえば、MATLAB ワークスペースで MEX 構成オブジェクト mexcfg の作成とカスタマイズを行ったとします。構成オブジェクトを保存するには、MATLAB プロンプトで次のように入力します。

save mexcfg.mat mexcfg
save コマンドは mexcfg を現在のフォルダー内のファイル mexcfg.mat に保存します。

新しい MATLAB セッションで mexcfg を復元するには、MATLAB プロンプトで次のように入力します。

load mexcfg.mat
load コマンドは mexcfg.mat に定義されたオブジェクトを MATLAB ワークスペースに読み込みます。

参考

| | |

トピック

外部の Web サイト