コード生成およびビルド設定の構成
ビルド タイプ (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 プロジェクトに対して同じタイプの出力を生成するたびに、以前のビルドのファイルを上書きします。前のビルドのファイルを保持する場合は、ファイルを別の場所にコピーしてからビルドを開始します。あるいは、生成されたファイルの名前または場所を変更します。生成ファイルと場所を参照してください。
出力タイプと言語の指定
ビルド タイプを指定するには、次のようにします。
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++ コード、実行可能ファイルにコンパイル、 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 関数で構成オブジェクトを使用して、コード生成用の環境をカスタマイズします。次の表に、使用可能な構成オブジェクトと、構成オブジェクトの作成に使用できるコマンド例をリストします。
| 構成オブジェクト | 説明 | 作成コマンドの例 |
|---|---|---|
MEX コード生成のためのパラメーターを指定します。 | cfg = coder.config("mex"); | |
使用可能な 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"); | |
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"); |
構成オブジェクトのパラメーターは既定値に初期化されます。構成オブジェクトを変更してコード生成環境をカスタマイズするには、以下の手順を行います。
MATLAB ワークスペースで、構成オブジェクトを作成します。
必要に応じて、以下のいずれかの方法を使用して構成オブジェクトのパラメーターを変更します。
コマンド ラインでのドット表記。コマンド ラインでのドット表記を使用した構成オブジェクトの変更を参照してください。
ダイアログ ボックス。Specify Code Configuration Parameters Interactivelyを参照してください。
-configオプションを使用して、関数codegen呼び出します。構成オブジェクトをconfig引数として指定します。-configオプションは、構成オブジェクトの設定を使用してターゲットの MATLAB のコードを生成するようにcodegenに指示します。たとえば、コマンド ラインで、スタティック ライブラリ構成オブジェクトcfgを作成します。次に、この構成オブジェクトを指定してcodegenコマンドを使用して、MATLABfooのコードを生成します。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.matload コマンドは mexcfg.mat に定義されたオブジェクトを MATLAB ワークスペースに読み込みます。参考
codegen | coder.MexCodeConfig | coder.CodeConfig | coder.EmbeddedCodeConfig
トピック
- 生成コードの分割についての理解と制御
- Specify Code Configuration Parameters Interactively
- MATLAB コードからのスタンドアロン C/C++ 実行可能ファイルの生成
- MATLAB Coder を使用したコード生成の概要