Main Content

外部 C/C++ コードのビルドの構成

外部 C/C++ コードを MATLAB® に統合するには、コード ジェネレーターに対して外部ファイルを提供しなければなりません。これらのファイルは、生成コードのビルドに使用されるソース ファイル、ヘッダー ファイル、オブジェクト ファイルおよびライブラリ ファイルで構成されています。

ビルドの構成は、コマンド ライン、関数内、またはコード生成構成オブジェクト プロパティを設定することで実行できます。迅速かつ簡単にコードを生成するには、コマンド ラインでファイルを指定します。他のプロジェクトやコード展開用に関数を事前構成する場合は、関数内でビルドを構成します。構成オブジェクトは標準化されたビルド プロパティ セットを提供します。MATLAB Coder™ アプリを使用して、または coder.ExternalDependency から派生するクラスを使用して外部ファイルを指定することもできます。詳細については、外部 C/C++ コードのインターフェイスの開発を参照してください。

コード生成用の外部ファイルの提供

coder.ceval を使用して C 関数 myCFn を呼び出す関数のコードを生成するとします。myCFn の外部ソース ファイルおよびヘッダー ファイルは、フォルダー C:\custom 内に存在します。以下のコマンドを使用します。

codegen myMatlabFn C:\custom\myCFn.c C:\custom\myCFn.h

関数内からのビルドの構成

この例では、MATLAB® 関数内から外部 C/C++ コードのビルドを構成する方法を説明します。他のプロジェクトと簡単に統合できるように、関数内でビルドを構成します。

最上位の MATLAB 関数 myFn があるとします。

function [out] = myFn(in)
%#codegen
y = mySubFn(in);
out = y + 10;
end


この関数は、外部 C コード foo.c を使用する別の関数 mySubFn を呼び出します。coder.updateBuildInfocoder.cinclude を使用することで、すべての必要な外部コードの依存関係を mySubFn 内から設定します。

function [y] = mySubFn(x)
%#codegen
coder.cinclude('foo.h');
coder.updateBuildInfo('addSourceFiles', 'foo.c');
% Pre-initialize y to double type.
y = 0;
y = coder.ceval('foo',x);
end


追加のビルド設定を構成したり、コマンド ラインで外部ファイル入力を指定したりすることなく、mySubFn を含むコードを生成することができます。最上位の関数 myFn のコードを生成するには、以下を入力します。

codegen myFn -args {5} -report
Code generation successful: To view the report, open('codegen/mex/myFn/html/report.mldatx')

構成オブジェクトを使用したビルドの構成

コード生成構成オブジェクトのプロパティを設定することで、ビルドをカスタマイズします。以下のプロパティを使用して、外部ファイルの場所、カスタム ソース コードおよびその他のビルド パラメーターを指定することができます。

カスタム コード プロパティ説明

CustomHeaderCode

MATLAB コードから生成された各 C/C++ ヘッダー ファイルの最上部近くにコードが表示されるように指定します。

CustomInclude

生成されたコードのコンパイル中にインクルード パスに追加するインクルード ディレクトリのリストを指定します。絶対パスまたはプロジェクト フォルダーへの相対パスを指定します。

CustomLibrary

生成コードにリンクするスタティック ライブラリ ファイルまたはオブジェクト ファイルのリストを指定します。

CustomSource

コンパイルして生成コードにリンクするソース ファイルのリストを指定します。ビルド プロセスは最初に現在のフォルダー内でソース ファイルを探してから、CustomInclude に指定したインクルード フォルダー内で探します。

CustomSourceCode

生成された C/C++ ソース ファイルの最上部近く、関数の外側にコードが表示されるように指定します。C 静的関数の定義は指定しないでください。

たとえば、スタンドアロン コードの構成オブジェクトを宣言し、以下のプロパティを指定します。

cfg = coder.config('lib');
cfg.CustomInclude = ["C:\custom\src", "C:\custom\lib"];
cfg.CustomSource = "cfunction.c";
cfg.CustomLibrary = ["chelper.obj", "clibrary.lib"];
cfg.CustomSourceCode = '#include "cgfunction.h"';

-config 引数を指定して codegen コマンドを使用することで、コマンド ラインでプロパティを適用します。

codegen -config cfg myMatlabFn

MATLAB Coder アプリを使用したビルドの構成

  1. MATLAB Coder アプリを開き、[コード生成] の手順に進みます。

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

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

  4. [カスタム コード] タブで、ビルド構成設定を選択します。入力フィールドに関する情報を表示するには [ヘルプ] をクリックします。

参考

| | | | | |

関連するトピック