main 関数の例を使用した生成コードの組み込み
生成された C/C++ コードを使用するアプリケーションをビルドする場合、生成されたコードを呼び出す C/C++ main 関数を提供しなければなりません。
既定では、C/C++ ソース コード、スタティック ライブラリ、ダイナミック ライブラリおよび実行可能ファイルのコード生成用に、MATLAB® Coder™ は C/C++ main 関数の例を生成します。この関数は、生成された C/C++ コードのアプリケーションへの組み込みに役立つテンプレートです。main 関数の例は動的に割り当てられたデータなどのデータを宣言して初期化します。これは、エントリポイント関数を呼び出しますが、エントリポイント関数が返す値は使用しません。
MATLAB Coder は、ビルド フォルダーの examples
サブフォルダーで main 関数の例に対するソース ファイルとヘッダー ファイルを生成します。C コード生成の場合、ファイル main.c
と main.h
を生成します。C++ コード生成の場合、ファイル main.cpp
と main.h
を生成します。
ファイル main.c
と main.h
を examples
サブフォルダーで変更しないでください。変更すると、コードの再生成時に MATLAB Coder でメイン ファイルの例が再生成されません。生成されたファイルに対する変更が検出されたことを警告します。main 関数の例を使用する前に、メイン ソース ファイルとヘッダー ファイルの例をビルド フォルダー以外の場所にコピーします。アプリケーションの要件を満たすように新しい場所でファイルを変更します。
packNGo
関数と MATLAB Coder アプリの [エクスポート]、[生成されたコードを ZIP ファイルとしてパッケージ化] ボタンは、既定の構成設定を使用してファイルを生成する際にメイン ソース ファイルとヘッダー ファイルの例をパッケージ化しません。メイン ファイルの例をパッケージ化するには、コード生成を構成し、main 関数の例を生成してコンパイルし、コードを生成してからビルド ファイルをパッケージ化します。
main 関数の例を使用したワークフロー
コード生成用に MATLAB コードを準備します。
実行時の問題を確認します。
main の例の生成が有効になっていることを確認します。
エントリポイント関数の C/C++ コードを生成します。
メイン ファイルの例を
examples
サブフォルダーから別のフォルダーへコピーします。アプリケーションの要件を満たすように新しいフォルダーでメイン ファイルの例を変更します。
必要なプラットフォームに対して、main の例と生成されたコードを展開します。
アプリケーションをビルドします。
main の例の生成方法と、main の例を使用した実行可能ファイルのビルド方法については、アプリケーションにおける C の main の例の使用を参照してください。
MATLAB Coder アプリを使用した main の例の生成の制御
スタンドアロン コードを生成するようにコード ジェネレーターに指示するには、ツールストリップの [MATLAB Coder] タブで [出力タイプ] をクリックし、[スタティック ライブラリ (.lib)]、[ダイナミック ライブラリ (.dll)]、または [実行可能ファイル (.exe)] を選択します。
[設定] をクリックして [コード生成設定] ダイアログ ボックスを開きます。次の表は、[main の例の生成] パラメーターの設定方法をコード ジェネレーターの動作ごとに示したものです。
設定 | コード ジェネレーターの動作 |
---|---|
main 関数の例を生成しない | C/C++ の main 関数の例を生成しません。 |
main 関数の例を生成するが、コンパイルしない | C/C++ の main 関数の例を生成しますが、コンパイルしません。この動作は既定です。 |
main 関数の例を生成してコンパイルする | C/C++ の main 関数の例を生成してコンパイルします。 |
コマンド ライン インターフェイスを使用した main の例の生成の制御
スタンドアロン コード構成オブジェクトで GenerateExampleMain
プロパティを設定します。次の表は、GenerateExampleMain
プロパティの設定方法をコード ジェネレーターの動作ごとに示したものです。
設定 | コード ジェネレーターの動作 |
---|---|
'DoNotGenerate' | C/C++ の main 関数の例を生成しません。 |
'GenerateCodeOnly' | C/C++ の main 関数の例を生成しますが、コンパイルしません。この動作は既定です。 |
'GenerateCodeAndCompile' | C/C++ の main 関数の例を生成してコンパイルします。 |
たとえば、'lib'
、'dll'
、または 'exe'
用のコード構成オブジェクトを作成します。次に、C/C++ の main 関数を生成してコンパイルはしないようにコード ジェネレーターに指示します。
cfg.GenerateExampleMain = 'GenerateCodeOnly'; cfg = coder.config('lib'); % or dll or exe
メモ
Windows® では、Generate and compile an example main function
を選択するか、cfg.GenerateExampleMain
を GenerateCodeAndCompile
に設定すると、dll
および lib
コード生成用に、.exe
ファイルではなく Windows 実行可能バッチ ファイル (.bat) が現在の作業ディレクトリに生成されます。サンプル フォルダーにある main.c
ファイルと main.h
ファイルは、アプリケーションの要件に合わせて変更できます。