メインコンテンツ

ビルド構成

出力ファイルの名前、場所、種類、言語などのビルド設定の構成

バイナリ コードを生成するビルド プロセスを制御および設定するには、多くのパラメーターや設定があります。これらの設定は、出力ビルドの種類 (MEX、lib、dll または exe) および C と C++ 言語などの属性を制御します。他のビルド設定により、可読性、パフォーマンスおよび外部コードの統合などの特定のニーズに応じて、ビルド出力をカスタマイズできます。アプリまたはコマンド ラインでコード生成構成オブジェクトのビルド オプションを変更できます。coder.config を使用して、構成オブジェクトを作成できます。open を使用して、編集アプリでオブジェクトを開きます。追加のビルド ファイルおよびフラグを関数コード内から指定するには、coder.updateBuildInfo を使用します。

関数

すべて展開する

coder.configコード生成構成オブジェクトを作成する
coder.updateBuildInfoRTW.BuildInfo ビルド情報オブジェクトの更新
target.addターゲット オブジェクトを内部データベースに追加
target.clearClear all target objects from internal database (R2023a 以降)
target.createターゲット オブジェクトを作成
target.exportターゲット オブジェクトのデータをエクスポート
target.getターゲット オブジェクトを内部データベースから取得
target.remove内部データベースからのターゲット オブジェクトの削除
target.updateUpdate target objects in internal database (R2023a 以降)
target.upgradeハードウェア デバイスの既存の定義のアップグレード
addCompileFlagsAdd compiler options to build information
addDefinesAdd preprocessor macro definitions to build information
addIncludeFilesAdd include files to build information
addIncludePathsAdd include paths to build information
addLinkFlagsAdd link options to build information
addLinkObjectsAdd link objects to build information
addNonBuildFilesAdd nonbuild-related files to build information
addPreincludeFilesAdd preinclude files to build information (R2024a 以降)
addSourceFilesAdd source files to build information
addSourcePathsAdd source paths to build information
addUndefinesAdd undefine preprocessor directives to build information (R2024a 以降)
removeIncludePathsRemove include paths from build information (R2023b 以降)
removeSourceFilesRemove source files from build information object (R2021b 以降)
removeUndefinesRemove undefine preprocessor macros from build information (R2024a 以降)
findBuildArgFind a specific build argument in build information
findIncludeFilesFind and add include (header) files to build information
getBuildArgsGet build arguments from build information
getCompileFlagsGet compiler options from build information
getDefinesGet preprocessor macro definitions from build information
getFullFileListGet list of files from build information
getIncludeFilesGet include files from build information
getIncludePathsGet include paths from build information
getLinkFlagsGet link options from build information
getNonBuildFilesGet nonbuild-related files from build information
getPreincludeFilesGet preinclude files from build information (R2024a 以降)
getSourceFilesGet source files from build information
getSourcePathsGet source paths from build information
getUndefinesFrom build information, get preprocessor macros to undefine (R2024a 以降)
setTargetProvidesMainDisable inclusion of code generator provided (generated or static) main.c source file during build
updateFilePathsAndExtensionsUpdate files in build information with missing paths and file extensions
updateFileSeparatorUpdate file separator character for file lists in build information

コード構成設定

すべて展開する

ビルド タイプ生成された C/C++ コードからビルドする出力
言語Language to use in generated code
言語標準Language standard to use for the generated code
カスタム出力ファイルName of code generation output file
コード生成のみソース コードのみの生成
検証モードCode verification mode
ビルド フォルダーFolder type for files generated during build process
ビルド フォルダーのパスFolder path for files generated during build process
作業フォルダーCurrent working folder type for build process
作業フォルダーのパスCurrent working folder path for build process
Ctrl + C キーへの応答、およびグラフィックスの更新を有効にする応答性チェック
外部呼び出しを維持外部関数呼び出しのサポート
メモリの整合性をチェックメモリの整合性チェック
整数オーバーフローで飽和Integer overflow support
純粋な整数のみをサポート浮動小数点コードの検出
非有限数のサポート非有限値のサポート
ループ展開のしきい値Threshold on the number of iterations that determines whether to automatically unroll a for-loop and a parfor-loop
エントリポイント関数の入力データを保持エントリポイントの入力データが変更されないように保護するかどうか
可能な場合は OpenMP ライブラリを有効にするParallelization of parfor-loops
自動並列化を有効にするfor ループの自動並列化
CPU スレッドの最大数並列 for ループを実行する CPU スレッドの最大数
ターゲット ハードウェアの命令セット拡張を活用SIMD instruction set for target hardware
FMAWhether to use SIMD instructions for fused multiply add operations
ユーザー定義の MATLAB 関数に対するインライン手法Control inlining between user-written functions
MathWorks 定義の MATLAB 関数に対するインライン手法Control inlining between MathWorks functions
MathWorks 関数とユーザー関数の間の呼び出しに対するインライン手法ユーザー記述関数と MathWorks 関数の間のインライン化を制御
リダクションの最適化Generate SIMD code for reduction operations | Parallelize for-loops performing reduction operations
ハードウェア SIMD アクセラレーションLevel of SIMD intrinsics
グローバルなデータ同期モードグローバルなデータ同期モード
可変サイズを有効化可変サイズ配列のサポート
動的メモリ割り当てを有効化可変サイズの配列に対する動的メモリ割り当てを有効化
動的メモリ割り当てしきい値Size threshold for dynamic memory allocation of variable-size arrays
固定サイズの配列に対する動的メモリ割り当てを有効化固定サイズの配列に対する動的メモリ割り当て
動的メモリ割り当てインターフェイスDynamically allocated array at generated function interface
配列のレイアウト行優先の配列レイアウト
配列の次元を保持N 次元のインデックス
最大スタック使用量アプリケーションごとの最大スタック使用量
再呼び出し可能なコードを生成マルチインスタンスの再呼び出し可能なコード
未使用のフィールドとプロパティを保持生成された C/C++ コードにおける未使用のクラス プロパティまたは構造体フィールドの保持
生成されたファイルの分割法File partitioning mode
大きな定数の生成大きな深層学習の定数をバイナリ データ ファイルに書き込むかどうか
大きな定数のしきい値Threshold above which the code generator writes DNN constants to binary data files
コメントを含めるComments in generated code
コメント スタイルComment style in the generated code
コメントを示す MATLAB ソース コードInclusion of MATLAB source code as comments in generated code
MATLAB ソース コード コメントの行番号Include line numbers of MATLAB source code as comments in the generated code
MATLAB 関数のヘルプ テキスト 関数バナー内の MATLAB 関数のヘルプ テキスト
コメントとしての要件の概要要件リンクをコメントとして含める
if-elseif-else のパターンを switch-case ステートメントに変換するif-elseif-else パターンの switch-case ステートメントへの変換
関数の宣言で extern キーワードを保持する関数宣言での extern キーワードの保持
固定小数点の演算および 2 のべき乗の乗算には符号付き左シフトを使用する2 のべき乗での乗算の符号付きのビット単位左シフトへの置換
符号付き整数の右シフトを許可生成コードの符号付きビット単位右シフト
かっこ生成されたコードでのかっこのレベル
識別子の最大の長さMaximum number of characters in generated identifiers
ヘッダー ガード スタイルStyle of preprocessor directive in generated code
インデント スタイル生成されたコードの中かっこの配置スタイル
インデント サイズインデント レベル単位の文字数
列の制限生成されたコードの改行の前の最大列数
データ型置換Data type replacement in generated code
カスタム データ型置換を有効化Custom names for data types in generated code
外部ヘッダー ファイルからカスタムの型をインポートWhether to import type definition from external header files
ヘッダー ファイルExternal header files that contain custom type definitions
グローバル変数グローバル変数識別子のカスタム識別子の形式
グローバルなタイプグローバルなタイプの識別子のカスタム識別子の形式
グローバルなタイプのフィールド名グローバルなタイプの識別子のフィールド名に対するカスタム識別子の形式
ローカル関数ローカル関数識別子のカスタム識別子の形式
ローカルな一時変数ローカルな一時変数識別子のカスタム識別子の形式
定数のマクロ定数マクロ識別子のカスタム識別子の形式
EMX 配列タイプEMX 配列型のカスタム識別子の形式
EMX 配列ユーティリティ関数EMX 配列ユーティリティ関数のカスタム識別子の形式
生成されるソース ファイルおよびヘッダー ファイルの名前の形式ファイル名のカスタマイズ マクロ
コード生成テンプレート ファイルファイル バナーおよび関数バナーのコード生成テンプレート
使用するコード形式ツールの選択Formatting tool for generated code
clang 形式の構成ファイルの使用を制御Control generation of clang-format file
C/C++ コンパイラのデバッグ モードを有効にするC コンパイラのデバッグ モード
実行時エラー チェックの生成Run-time error detection and reporting in generated code
詳細なコンパイラ出力を表示Code generation progress display
常にレポートを作成コード生成レポート
MATLAB との相違点をレポートPotential differences reporting
潜在的なデータ型の問題を強調表示コード生成レポートでの潜在的なデータ型の問題の強調表示
潜在的な行優先の問題を強調表示行優先のレイアウトによる潜在的な問題
暗黙的な拡張によって生じる潜在的な問題を強調表示Highlight potential implicit expansion issues
coder.loop 関数を使用する際の潜在的な問題を強調表示Highlight potential loop control issues
静的コード メトリクス レポートの生成静的コード メトリクス レポート
コード置換レポートの生成Code replacement report
レポート生成時の自動起動コード生成レポートを自動的に開く
レポート情報を変数にエクスポートコード生成レポートの情報を格納する変数の名前
SIL または PIL でソースレベル デバッグを有効にするSIL または PIL 実行時の生成コードのデバッグ
定数入力をチェックSIL または PIL 実行の定数入力チェック
グローバル データを同期SIL または PIL 実行のグローバルなデータ同期モード
エントリ ポイント実行プロファイリングを有効にするSIL または PIL 実行時の実行時間プロファイリング
関数実行プロファイリングを有効にするSIL または PIL 実行時のエントリポイント関数内で呼び出される関数の実行時間プロファイリング
プロファイリング保存オプションの指定実行時間の測定の収集と格納
エントリ ポイント スタック プロファイリングを有効にするSIL または PIL 実行時のスタック使用量プロファイリング
C/C++ コード カバレッジを有効にするC/C++ コード カバレッジの解析
実行プロファイリングを有効にするInstrumentation for profiling
コード置換ライブラリ生成コードのコード置換ライブラリ
組み込み FFTW ライブラリの使用Generate code that uses the FFTW library shipped with MATLAB
カスタム FFT ライブラリのコールバックCallback class for FFTW library calls
カスタム BLAS ライブラリのコールバックBLAS コールバック クラス
カスタム LAPACK ライブラリのコールバックLAPACK コールバック クラス
プリコンパイルされたライブラリの使用Whether to use precompiled libraries in generated code
ソース ファイル生成された .c または .cpp ファイルの最上部付近に表示されるコード
ヘッダー ファイル生成された C/C++ ヘッダー ファイルの最上部に表示されるカスタム コード
初期化関数生成された初期化関数に含めるカスタム コード
終了関数生成された終了関数に表示されるコード
追加インクルード ディレクトリInclude folders to add to include path for compiling generated code
追加ソース ファイルSource files to compile and link with the generated code
追加ライブラリStatic library files to link with the generated code
コード生成後のコマンドビルド プロセスをカスタマイズするコマンド
予約名Names that code generator must not use for functions or variables
ハードウェア ボードName of hardware board
製品デバイスの詳細: デバイス ベンダーManufacturer of production hardware
製品デバイスの詳細: デバイス タイプType of production hardware
製品デバイスの詳細: charC の char データ型のビット長
製品デバイスの詳細: shortC の short データ型のビット長
製品デバイスの詳細: intC の int データ型のビット長
製品デバイスの詳細: longC の long データ型のビット長
製品デバイスの詳細: long longLength in bits of the C long long data type
製品デバイスの詳細: floatC の浮動小数点データ型のビット長
製品デバイスの詳細: doubleC の double データ型のビット長
製品デバイスの詳細: マシン ワードMicroprocessor native word size
製品デバイスの詳細: ポインターLength in bits of pointer data
製品デバイスの詳細: size_tsize_t データのビット長
製品デバイスの詳細: ptrdiff_tptrdiff_t データのビット長
製品デバイスの詳細: バイト順データ ワードの最初のバイトの意味
製品デバイスの詳細: 算術シフトとして符号付き整数を右にシフト符号付き整数の右シフトを算術右シフトとして実装
製品デバイスの詳細: long long を有効にするlong long データ型のサポート
製品デバイスの詳細: 最大 Atomic 整数サイズLargest atomic integer size for production hardware
製品デバイスの詳細: 最大 Atomic 浮動小数点サイズLargest atomic floating-point size for production hardware
製品デバイスの詳細: 符号付き整数の除算の丸め2 つの符号付き整数の除算の丸め
ターゲット デバイスの詳細: デバイス ベンダーManufacturer of test hardware
ターゲット デバイスの詳細: デバイス タイプType of test hardware
テスト デバイスの詳細: charLength in bits of the C char data type
テスト デバイスの詳細: shortLength in bits of the C short data type
テスト デバイスの詳細: intLength in bits of the C int data type
テスト デバイスの詳細: longLength in bits of the C long data type
テスト デバイスの詳細: long longLength in bits of the C long long data type
テスト デバイスの詳細: floatC の浮動小数点データ型のビット長
テスト デバイスの詳細: doubleC の double データ型のビット長
テスト デバイスの詳細: マシン ワードMicroprocessor native word size
テスト デバイスの詳細: ポインターLength in bits of pointer data
テスト デバイスの詳細: size_tsize_t データのビット長
テスト デバイスの詳細: ptrdiff_tLength in bits of ptrdiff_t data
テスト デバイスの詳細: バイト順Significance of the first byte of a data word
テスト デバイスの詳細: 算術シフトとして符号付き整数を右にシフト符号付き整数の右シフトを算術右シフトとして実装
テスト デバイスの詳細: long long を有効にするlong long データ型のサポート
テスト デバイスの詳細: 最大 Atomic 整数サイズLargest atomic integer size for test hardware
テスト デバイスの詳細: 最大 Atomic 浮動小数点サイズLargest atomic floating-point size for test hardware
テスト デバイスの詳細: 符号付き整数の除算の丸め2 つの符号付き整数の除算の丸め
ツールチェーンToolchain to use for building a C/C++ library or executable program
カスタム ツールチェーン オプションCustom settings for tools in selected toolchain
ビルド構成 Compiler optimization or debug settings for toolchain
テスト ハードウェアを製品ハードウェアと同じにするEquivalence of production and target hardware characteristics
C++ 名前空間Namespace name for generated C++ code
インターフェイス スタイルInterface style for generated C++ code
C++ インターフェイス クラス名Interface class name for generated C++ code
MATLAB 名前空間から C++ 名前空間を生成MATLAB 名前空間に対応する C++ 名前空間の生成
MathWorks コードの名前空間Place C++ code generated for MathWorks code in a separate namespace
MATLAB クラスから C++ クラスを生成MATLAB クラスに対応する C++ クラスの生成
MATLAB 列挙から C++ enum クラスを生成Whether to generate C++ enumeration classes for MATLAB enumerations
キャスト モードデータ型のキャスト レベル
定数畳み込みのタイムアウト定数畳み込みによって実行される命令の最大数
コンパイル時の再帰限界値コンパイル時の再帰による関数の特殊化の最大数
初期化関数を自動的に実行Automatically run the initialize function
初期化関数が必要初期化関数の生成
終了関数が必要終了関数の生成
既知の MISRA 違反について正当化のコメントを生成既知の MISRA/AUTOSAR 違反を抑制する注釈を追加
main の例の生成C/C++ main ファイルの生成例
変数名の保持Variable names to preserve in the generated code
終端のセミコロンなしの式をエコー式をエコー
makefile の生成makefile の生成
外部呼び出しを自動的に導入自動的な外部関数呼び出し
配列のインデックスを簡略化する強度低減の最適化
ベクトルの代入に対する memcpy の使用 Whether to enable memcpy optimization
memcpy しきい値 (バイト)Minimum size for memcpy or memset optimization
float と double を 0.0 に初期化するために memset を使用Assignment of float and double zero with memset
定数入力定数入力チェック モード
MEX のビルド タイプに JIT コンパイルを使用Just-In-Time (JIT) コンパイル モード
非有限サポート ファイルを生成 (使用されている場合)Generate support files for nonfinite data only if nonfinite data is used
エントリポイント関数に構造体を参照で渡すPass structures by reference
switch の default ケースを常に生成するすべての switch ステートメントの default ケース
コードのトレーサビリティを有効にするコード生成レポートのトレーサビリティ
Embedded Coder 機能の使用Whether to use Embedded Coder features
暗黙的な拡張を有効にする生成コードでの暗黙的な拡張機能
自動並列化のレポートを有効にするfor ループの自動並列化のレポート作成
実行時の再帰を有効にするRun-time recursion support
動的な配列データをキャッシュDynamic array optimization
SIL/PIL の詳細SIL または PIL 実行時の通信の I/O 情報の表示
SIL/PIL プロファイリング メトリクスPMU metric

オブジェクト

coder.MexCodeConfigMATLAB からの MEX 関数生成用構成パラメーター
coder.CodeConfigMATLAB コードから C/C++ コードを生成するための構成パラメーター
coder.EmbeddedCodeConfigEmbedded CoderMATLAB コードから C/C++ コードを生成するための構成パラメーター
coder.HardwareImplementationMATLAB コードから C/C++ コードを生成するためのハードウェア固有の構成パラメーター
coder.hardwareMATLAB コードから C/C++ コード生成用ハードウェア ボード構成オブジェクトを作成します。
coder.ReplacementTypesC/C++ コード生成における MATLAB 組み込みデータ型のカスタム名を指定する構成パラメーター。
RTW.BuildInfo生成されたコードのコンパイルとリンクに関する情報を提供する

クラス

coder.ExternalDependency外部コードへのインターフェイス
target.Aliasターゲット オブジェクトの代替識別子を作成
target.CMakeSpecify CMake installation for building generated code (R2022b 以降)
target.CMakeBuilder Configure how CMake builds generated code (R2022b 以降)
target.CMakeBuildTypeDescribe CMake build type or build configuration (R2022b 以降)
target.CMakeCacheEntryConfigure a CMake cache entry (R2022b 以降)
target.EnvironmentConfigurationConfigure system environment for toolchain (R2022b 以降)
target.HardwareComponentSupportDescribe support for a hardware component (R2022b 以降)
target.LanguageImplementationC および C++ コンパイラの実装の詳細を提供
target.Objectターゲット タイプの基底クラス
target.Processorターゲット プロセッサ情報の提供
target.ToolchainCapture high-level information about toolchain (R2022b 以降)

名前空間

targetターゲット ハードウェアとビルド ツールの情報の管理

トピック

ビルド構成の基礎

特定のビルド オプション

  • 生成されたコードでの変数名の保持
    生成されたコードで変数名を保持すると、生成された C/C++ コードの可読性が向上します。
  • 生成コードの分割についての理解と制御
    生成コードの分割を制御するためにファイルの分割方法とインライン化の設定がどのように連携するかを理解する。
  • コード生成に使用する言語標準の変更
    コード ジェネレーターはビルド設定で指定する言語標準を使用します。
  • 新しいハードウェア デバイスの登録
    新しいデバイスを登録することで、サポートされるハードウェアの範囲を拡大する。
  • Configure CMake Build Process
    Specify CMake toolchain definition for building generated code.
  • Create Custom CMake Toolchain Definition
    CMake is a third-party, open-source tool for build process management. To build code generated from MATLAB® code (when using MATLAB Coder™) or from Simulink® models (when using Simulink Coder™), the software provides CMake toolchain definitions that you can select from the Toolchain drop-down list. You can also create custom CMake toolchain definitions by using the target namespace. When you add a custom CMake toolchain definition to an internal database, the toolchain is available for building generated code. This example shows how you can create a CMake toolchain definition using the Ninja generator. You can use the toolchain definition on computers with these operating systems:
  • MEX 関数での定数入力のチェック
    MEX 関数で定数入力引数の値をチェックするかどうかを制御します。

トラブルシューティング

注目の例