Main Content

main 関数の例を使用した生成コードの組み込み

生成された C/C++ コードを使用するアプリケーションをビルドする場合、生成されたコードを呼び出す C/C++ main 関数を提供しなければなりません。

既定では、C/C++ ソース コード、スタティック ライブラリ、ダイナミック ライブラリおよび実行可能ファイルのコード生成用に、MATLAB® Coder™ は C/C++ main 関数の例を生成します。この関数は、生成された C/C++ コードのアプリケーションへの組み込みに役立つテンプレートです。main 関数の例は動的に割り当てられたデータなどのデータを宣言して初期化します。これは、エントリポイント関数を呼び出しますが、エントリポイント関数が返す値は使用しません。

MATLAB Coder は、ビルド フォルダーの examples サブフォルダーで main 関数の例に対するソース ファイルとヘッダー ファイルを生成します。C コード生成の場合、ファイル main.cmain.h を生成します。C++ コード生成の場合、ファイル main.cppmain.h を生成します。

ファイル main.cmain.hexamples サブフォルダーで変更しないでください。変更すると、コードの再生成時に MATLAB Coder でメイン ファイルの例が再生成されません。生成されたファイルに対する変更が検出されたことを警告します。main 関数の例を使用する前に、メイン ソース ファイルとヘッダー ファイルの例をビルド フォルダー以外の場所にコピーします。アプリケーションの要件を満たすように新しい場所でファイルを変更します。

関数 packNGoMATLAB Coder アプリの [パッケージ] オプションは、既定の構成設定を使用してファイルを生成する際にメイン ソース ファイルとヘッダー ファイルの例をパッケージ化しません。メイン ファイルの例をパッケージ化するには、コード生成を構成し、main 関数の例を生成してコンパイルし、コードを生成してからビルド ファイルをパッケージ化します。

main 関数の例を使用したワークフロー

  1. コード生成用に MATLAB コードを準備します。

  2. 実行時の問題を確認します。

  3. main の例の生成が有効になっていることを確認します。

  4. エントリポイント関数の C/C++ コードを生成します。

  5. メイン ファイルの例を examples サブフォルダーから別のフォルダーへコピーします。

  6. アプリケーションの要件を満たすように新しいフォルダーでメイン ファイルの例を変更します。

  7. 必要なプラットフォームに対して、main の例と生成されたコードを展開します。

  8. アプリケーションをビルドします。

main の例の生成方法と、main の例を使用した実行可能ファイルのビルド方法については、アプリケーションにおける C の main の例の使用を参照してください。

MATLAB Coder アプリを使用した main の例の生成の制御

  1. [コード生成] ページで [生成] ダイアログ ボックスを開くために [生成] 矢印 をクリックします。

  2. [生成] ダイアログ ボックスで [ビルド タイプ] を以下のいずれかに設定します。

    • ソース コード

    • スタティック ライブラリ

    • ダイナミック ライブラリ

    • 実行可能ファイル

  3. [詳細設定] をクリックします。

  4. [すべての設定] タブの [詳細設定][main の例の生成] を次のいずれかに設定します。

    設定値対象
    main 関数の例を生成しない C/C++ main 関数の例を生成しません。
    main 関数の例を生成するが、コンパイルしない (既定)C/C++ main 関数の例を生成しますが、コンパイルはしません。
    main 関数の例を生成してコンパイルするC/C++ main 関数の例を生成してコンパイルします。

コマンド ライン インターフェイスを使用した main の例の生成の制御

  1. 'lib''dll' または 'exe' 用のコード構成オブジェクトを作成します。次に例を示します。

    cfg = coder.config('lib'); % or dll or exe
    

  2. GenerateExampleMain プロパティを設定します。

    設定値対象
    'DoNotGenerate' C/C++ main 関数の例を生成しません。
    'GenerateCodeOnly' (既定)C/C++ main 関数の例を生成しますが、コンパイルはしません。
    'GenerateCodeAndCompile'C/C++ main 関数の例を生成してコンパイルします。

    次に例を示します。

    cfg.GenerateExampleMain = 'GenerateCodeOnly';
    

関連するトピック