コード生成オプション。オプション値、またはスペースで区切られたオプション値のリストとして指定します。オプション値は任意の順序で入力できます。オプションが競合している場合は、最も右にあるオプションが優先されます。
コード構成オブジェクトの指定
コード構成オブジェクトを指定するには、-config オプションを使用します。このオブジェクトは、単独で使用することも、他のオプション値と組み合わせて使用することもできます。コード生成およびビルド設定の構成を参照してください。コード ジェネレーターは、コード構成オブジェクトを使用して指定したオプションよりも、codegen 関数で指定したオプションを優先します。
| オプション値 | 説明 |
|---|
-config configObject | コード生成設定が含まれている構成オブジェクトを指定します。コード構成オブジェクトを作成するには、coder.config 関数を使用します。たとえば、スタティック ライブラリのコード構成オブジェクトを作成するには、次のコマンドを使用します。 次に、作成したオブジェクトを codegen に渡します。以下に例を示します。 |
生成コードの言語の制御
次の表に、生成コードの言語を制御するオプションを示します。既定では、コード ジェネレーターは C99 (ISO) 言語標準に準拠した C コードを生成します。C++ コードを生成した場合、既定では、コード ジェネレーターは C++11 (ISO) 言語標準に準拠した C++ コードを生成します。
C コードを生成した場合、C++ 言語標準はサポートされません。C++ コードを生成する際に C 言語標準を指定すると、コード ジェネレーターは、選択した C 標準および C++03 言語機能で使用可能な C 数学ライブラリを使用します。サポートされている言語標準の詳細については、コード生成に使用する言語標準の変更を参照してください。
| オプション値 | 説明 |
|---|
-lang:c | C コードを生成します。 |
-lang:c++ | C++ コードを生成します。 |
-std:c89/c90
| C89/C90 (ANSI) 言語標準に準拠したコードを生成します。 |
-std:c99
| C99 (ISO) 言語標準に準拠したコードを生成します。この言語標準は、C コードを生成した場合の既定の設定です。 |
-std:c++03 | C++03 (ISO) 言語標準に準拠したコードを生成します。 |
-std:c++11 | C++11 (ISO) 言語標準に準拠したコードを生成します。この言語標準は、C++ コードを生成した場合の既定の設定です。 |
-std:c++14 | C++14 (ISO) 言語標準に準拠したコードを生成します。 |
-std:c++17 | C++17 (ISO) 言語標準に準拠したコードを生成します。 |
-std:c++20 | C++20 (ISO) 言語標準に準拠したコードを生成します。 |
出力タイプの制御
次の表に、コード ジェネレーターによって生成されるコードのタイプを制御するオプションを示します。既定では、コード ジェネレーターは MEX 関数を生成し、生成されたコードをビルドします。
| オプション値 | 説明 |
|---|
-config:dll | C/C++ ダイナミック ライブラリを生成します。 |
-config:exe | C/C++ 実行可能ファイルを生成します。 |
-config:lib | C/C++ スタティック ライブラリを生成します。 |
-config:mex | MEX 関数を生成します。 |
-c | ソース コードのみを生成します。コード ジェネレーターは、make コマンドを呼び出したり、オブジェクト コードをビルドしたりしません。たとえば、関数 foo に対する C スタティック ライブラリを生成し、生成されたコードをビルドせずにソース コードを生成するには、次のコマンドを使用します。 |
-jit | Just-In-Time (JIT) コンパイルを使用して、MATLAB コードの抽象表現を含む JIT MEX 関数を生成します。JIT コンパイルは MEX 関数の生成を高速化できます。このオプションは、MEX 関数を生成する場合にのみ使用できます。このオプションは、カスタム コードを含めたり、OpenMP ライブラリを使用したりするオプションなど、一部のコード生成オプションと互換性がありません。 JIT コンパイルを使用した MEX 生成速度の高速化を参照してください。 |
グローバル変数の指定
コマンド ラインで -globals オプションを使用して、グローバル変数を指定します。MATLAB ワークスペース内のグローバル変数を定義および初期化することもできます。グローバル変数のコード生成を参照してください。
| オプション値 | 説明 |
|---|
-globals globalArray | コード生成の対象にする MATLAB 関数で使用されるグローバル変数を定義および初期化します。 globalArray はグローバル変数の名前と初期値の cell 配列です。この cell 配列の形式は {global1,value1,global2,value2,...} です。以下に例を示します。
または、coder.typeof 関数を使用してグローバル変数の型を指定します。この場合、-globals オプションに渡す cell 配列の形式は {global1,{type1,value1},global2,{type2,value2},...} です。以下に例を示します。 |
最適化の指定
次の表に、生成コードの最適化を指定するオプションを示します。生成コードを最適化するために使用できる追加の手法については、生成された C/C++ および MEX コードの最適化を参照してください。
| オプション値 | 説明 |
|---|
-O enable:inline
-O disable:inline
| 生成コードで関数のインライン化を有効または無効にします。既定では、コード ジェネレーターはインライン化を使用します。関数インライン化の詳細については、生成コードのパフォーマンスと可読性を微調整するためのインライン化の制御を参照してください。 関数呼び出しを常にインライン化すると、コード生成の最適化で処理されるコード量が増えるため、コード生成にかかる時間が長くなる可能性があります。 |
-O enable:openmp
-O disable:openmp
| 生成コード内での OpenMP ライブラリの使用を有効または無効にします。この最適化を有効にし、OpenMP ライブラリが使用可能な場合、コード ジェネレーターは複数のスレッドで実行できる parfor ループを生成します。既定では、OpenMP ライブラリが使用可能な場合、コード ジェネレーターはそのライブラリを使用します。 OpenMP の最適化を無効にした場合、または OpenMP ライブラリが使用可能でない場合、コード ジェネレーターは parfor ループを for ループのように扱い、単一のスレッドで実行されるコードを生成します。 parfor ループのコンパイルの制御を参照してください。 |
-rowmajor | 行優先の配列レイアウトを使用するコードを生成します。既定では、コード ジェネレーターは、列優先の配列レイアウトを使用します。詳細については、行優先の配列レイアウトを使用するコードの生成を参照してください。 |
デバッグ オプションの指定
次の表に、生成コードおよびコード生成プロセスのデバッグに使用できるオプションを示します。ベスト プラクティスとして、スタンドアロンのコードや高速化された MEX 関数を生成する前には、MEX 関数を生成して実行して、MATLAB コードにコンプライアンスの問題がないかを確認することをお勧めします。MEX 関数を使用した MATLAB コードの問題の確認を参照してください。
| オプション値 | 説明 |
|---|
-g | C/C++ コンパイラのデバッグ モードを有効にします。デバッグ モードを有効にすると、コード ジェネレーターはコンパイラで使用される最適化の一部を無効にするため、コード生成の速度が向上することがあります。ただし、生成されたコードの実行速度が低下する可能性があります。 |
-profile | MATLAB プロファイラーを使用して、生成された MEX 関数をプロファイリングします。MATLAB プロファイラーを使用した MEX 関数のプロファイリングを参照してください。 |
-report | コード生成レポートを作成します。このオプションを指定しない場合、codegen は、エラー メッセージまたは警告メッセージの発生時、あるいは -launchreport オプションが指定されているときに限り、レポートを生成します。 Embedded Coder® がある場合、このオプションによりコード置換レポートの作成も有効になります。 |
-reportinfo info | コード生成に関する情報を MATLAB ベース ワークスペースの変数 info にエクスポートします。コード生成レポートの情報へのプログラムによるアクセスを参照してください。 |
-silent | コード生成が警告なしで成功した場合にメッセージを非表示にするには、この最適化を有効にします。このオプションでは、警告メッセージやエラー メッセージは非表示になりません。 |
-test testFile | testFile を実行し、元の MATLAB 関数の呼び出しを MEX 関数の呼び出しに置き換えます。このオプションの使用と coder.runTest の実行は同じです。
このオプションは MEX 関数を生成する場合にのみサポートされます。 Embedded Coder のライセンスをお持ちの場合は、ソフトウェアインザループ (SIL) またはプロセッサインザループ (PIL) の検証用のコードを生成する際にもこのオプションを使用することができます。Code Verification Through Software-in-the-Loop and Processor-in-the-Loop Execution (Embedded Coder)を参照してください。 |
-v | コード生成のステータスおよびターゲットのビルド ログ メッセージを表示します。 |
生成ファイルの名前および場所の制御
次の表に、コード ジェネレーターによって生成されるファイルの既定の基本名および場所を変更するために使用できるオプションを示します。
| オプション値 | 説明 |
|---|
-d folder | 生成されたファイルを folder で指定された絶対パスまたは相対パスに保存します。フォルダー名には、以下を含めることはできません。
スペース (特定のオペレーティング システム構成でコード生成が失敗する原因となる可能性がある) 7 ビットの ASCII 文字以外の文字 (日本語の文字など) アスタリスク (*)、疑問符 (?)、ドル記号 ($)、または番号記号 (#) シンボル
folder で指定されたフォルダーが存在しない場合、コード ジェネレーターによってそのフォルダーが作成されます。 |
-o basename | MEX、ライブラリ、および実行可能ファイルを基本名 basename で生成します。基本名にはスペースを含めることはできません。特定のオペレーティング システム構成でコード生成が失敗する原因となる可能性があります。MEX 関数を生成する場合、basename は有効な MATLAB 関数名でなければなりません。 |
コード生成パスの変更
-I オプションを使用して、追加のフォルダーで MATLAB 関数やカスタム コード ファイルを検索するようにコード ジェネレーターに指示します。
| オプション値 | 説明 |
|---|
-I path | path をコード生成パスの先頭に追加します。コード ジェネレーターは、MATLAB 関数やカスタム C/C++ ファイルを検索するとき、まずコード生成パスを検索します。コード生成パスではクラスは検索されないため、クラスは MATLAB 検索パス上になければなりません。詳細については、パスとファイル構造の設定を参照してください。
パスに 7 ビットの ASCII 文字以外の文字 (日本語の文字など) が含まれている場合、コード ジェネレーターがそのパス上のファイルを検出できない可能性があります。 複数のパスを含めるには、含める各パスの前に -I を使用します。パスは、文字ベクトルまたは string として渡します。以下に例を示します。 |
生成されたコードのエクスポート
次の表に、生成されたコードまたはコード生成設定を別の開発環境または MATLAB Coder アプリに転送するために使用できるオプションを示します。
| オプション値 | 説明 |
|---|
-package zipFile | 生成されたスタンドアロン コードとその依存関係を、zipFile という名前の ZIP 圧縮ファイルにパッケージ化します。この ZIP ファイルを使用して、コード ファイルを他の開発環境に移動、解凍、およびリビルドできます。 このオプションの使用と packNGo 関数の使用は同じです。 |
-toproject projectFile | エントリポイント関数の名前、-args および -nargout の仕様、codegen オプション、およびすべての高度な構文を、projectFile という名前の MATLAB Coder プロジェクト ファイルに保存します。このコマンドは、codegen の仕様を MATLAB Coder アプリに転送する場合に使用します。次のコマンドを使用して、当該プロジェクト ファイルからコードを生成することもできます。 codegen コマンドの等価な MATLAB Coder プロジェクトへの変換を参照してください。 |
数値変換の実行
次の表に、MATLAB コードの数値変換を実行するために使用できるオプションを示します。これらのオプションを使用するには、Fixed-Point Designer™ のライセンスを所有していなければなりません。これらのオプションは、名前空間内のエントリポイント関数ではサポートされません。
| オプション値 | 説明 |
|---|
-config:single | 単精度の MATLAB コードを生成します。 |
-double2single singleConfig | singleConfig (coder.SingleConfig オブジェクトでなければならない) で指定した設定を使用して、単精度の MATLAB コードを生成します。
コード ジェネレーターは、フォルダー codegen/fun/single 内にファイルを生成します。ここで、fun は、エントリポイント関数の名前です。 このオプションを指定し、スタンドアロン コードを生成するようにコード ジェネレーターに指示した場合、コード ジェネレーターは、単精度の C/C++ コードもフォルダー codgen/outputType/subfolder 内に生成します。ここで、次のようになります。
詳細については、単精度 MATLAB コードの生成を参照してください。 |
-float2fixed float2fixedConfig | float2fixedConfig (coder.FixPtConfig オブジェクトでなければならない) で指定した設定を使用して、固定小数点コードを生成します。
このオプションを指定し、スタンドアロン コードを生成するようにコード ジェネレーターに指示した場合、コード ジェネレーターは、固定小数点の C/C++ コードを生成します。コード ジェネレーターは、フォルダー codegen/outputType/fun_fixpt 内にファイルを生成します。ここで、fun は、エントリポイント関数の名前で、outputType は次のとおりです。
このオプションを指定し、スタンドアロン コードを生成しない場合、コード ジェネレーターは、フォルダー codegen/fun/fixpt 内に固定小数点の MATLAB コードを生成します。 このオプションを使用するには、float2fixedConfig オブジェクトの TestBenchName プロパティを使用してテスト ファイルを指定する必要があります。 詳細については、MATLAB コードの固定小数点 C コードへの変換を参照してください。 |
-singleC | 単精度 C/C++ コードを生成します。詳細については、コマンド ラインでの単精度の C コードの生成を参照してください。 |
CUDA コードの生成
次の表に、MATLAB コードから CUDA® コードを生成する際に使用できるオプションを示します。これらのオプションを使用するには、GPU Coder™ のライセンスを所有していなければなりません。
| オプション値 | 説明 |
|---|
-config gpuconfig | CUDA コード生成設定が含まれている構成オブジェクトを指定します。この構成オブジェクトを生成するには、関数 coder.gpuConfig (GPU Coder) を使用します。 コマンド ライン インターフェイスを使用したコードの生成 (GPU Coder)を参照してください。 |
-gpuprofile | GPU パフォーマンス アナライザーを使用して、生成されたコードをプロファイリングします。 単一のコマンドで CUDA コードを生成およびプロファイルするには、-gpuprofile オプションと -test オプションの両方を指定して codegen を実行します。 MEX 以外のターゲットをプロファイリングするには、Embedded Coder のライセンスが必要です。 詳細については、GPU パフォーマンス アナライザー (GPU Coder)を参照してください。 |