Main Content

mbuild

MATLAB の生成された共有ライブラリに対してソース ファイルをコンパイルおよびリンクする

説明

mbuild は、MATLAB® の生成された共有ライブラリに対してソース ファイルをコンパイルおよびリンクするために使用します。

mbuild は、C または C++ の mwArray 共有ライブラリを生成するために mcc で暗黙的に呼び出されます。それらの共有ライブラリに C または C++ の追加コードをリンクするために明示的に呼び出すことができます。

リストにプラットフォームが示されていない場合、そのオプションは UNIX® と Windows® の両方で使用可能です。オプションの一部 (-f-g、および -v) は mcc コマンド ラインで使用可能であり、mbuild に渡されます。その他のものは、-M オプションを使用して mcc に渡すことができます。詳細については、mcc -M を参照してください。

mcc で生成された共有ライブラリを mbuild コマンドを使用して手動で統合するときは、フラグが一致しなければなりません。たとえば、mcc コマンドに -M -R2018a を渡している場合は、mbuild-R2018a を渡す必要があります。

mbuild 自体で使用されない mbuild への引数は、いずれも mex に渡されます。

mbuild [options] sourceFile は、ユーザーが記述した C または C++ コードを MATLAB の生成された共有ライブラリに対してコンパイルしてリンクします。

すべて折りたたむ

MATLAB Compiler SDK™ で使用する既定の C/C++ コンパイラを変更するには、以下を使用します。

mbuild -setup

libfoo に対して外部 C プログラム foo.c をコンパイルおよびリンクするには、以下を使用します。

mbuild foo.c -L. -lfoo (on UNIX)
mbuild foo.c libfoo.lib (on Windows)

ここでは、foo.c と上記で生成されたライブラリの両方が現在の作業フォルダーにあることを前提としています。

libfoo に対して外部 C プログラム foo.c をコンパイルおよびリンクするには、以下を使用します。

mbuild foo.c -L. -lfoo (on UNIX)
mbuild foo.c libfoo.lib (on Windows)

ここでは、foo.c と上記で生成されたライブラリの両方が現在の作業フォルダーにあることを前提としています。

入力引数

すべて折りたたむ

コンパイル対象のファイル。文字ベクトルまたは string スカラーとして指定します。

サポートされているソース ファイルのタイプは以下のとおりです。

  • .c

  • .cpp

オプションではなく、サポートされているソース ファイルのタイプのいずれにも属していない、mbuild への引数はライブラリ名とみなされ、リンカーに渡されます。

例: "mylib.cpp"

オプション

mbuild へのコマンド ライン引数としてテキスト ファイル rspfile の内容を含めます。このオプションは Windows でのみ使用できます。

コンパイルのみ。オブジェクト ファイルのみを作成します。

C プリプロセッサにシンボル名を定義します。ソースの #define <name> 命令と等価です。

値を指定する場合は、C プリプロセッサにシンボル名と値を定義します。ソースの #define <name> <value> 命令と等価です。

D<name> の間にスペースを追加しないでください。= 記号の前後にスペースを追加しないでください。

例: -DSPACE_PADDING

使用するオプション ファイルの場所と名前を指定します。mbuild の既定のオプション ファイル検索方法をオーバーライドします。このオプションにより、コンパイラの別の呼び出しに対して別の ANSI コンパイラを使用できます。

このオプションは mcc を使用して指定することもできます。

デバッグで使用する追加のシンボル情報が含まれた実行可能ファイルを作成します。このオプションにより、ビルドされるオブジェクト コードを最適化する mbuild の既定の動作が無効になります (-O オプションを参照)。

mbuild のヘルプを出力します。

#include ファイルを検索するフォルダーのリストに <pathname> を追加します。

オブジェクト ライブラリにリンクします。<name> は、Windows システムでは <name>.lib または lib<name>.lib に展開され、UNIX システムでは lib<name>.so または lib<name>.dylib に展開されます。

I<name> の間にスペースを追加しないでください。

メモ

ライブラリにリンクする場合には、まず (たとえば -L<pathname> を使用して) パスを指定する必要があります。

-l オプションで指定されたライブラリを検索するフォルダーのリストに <folder> を追加します。UNIX システムでは、実行時ライブラリ パスも設定する必要があります。

使用する場合、-L オプションは -l オプションの前に置かなければなりません。Linux® システムまたは macOS システムで -L オプションを使用する場合は、ランタイム ライブラリのパスも設定しなければなりません。詳細については、ランタイム ライブラリ パスの設定を参照してください。

L<folder> の間にスペースを追加しないでください。

これを指定しなかった場合に mbuild で実行されるコマンドを出力しますが、それらのコマンドは実際には実行されません。

最適化を使用してコンパイルするには、このオプションを使用します。最適化は既定で有効になっています。-g オプションが指定されていても、-O オプションが指定されていない場合、最適化は無効になります。

すべての出力ファイルをフォルダー <dirname> に配置します。

<resultname> という名前の実行可能ファイルを作成します。適切な実行可能ファイルの拡張子が自動的に追加されます。mbuild の既定の実行可能ファイルの命名メカニズムをオーバーライドします。

関数 mcc を使用して mxArray に基づく C 共有ライブラリまたは mwArray に基づく C++ 共有ライブラリを生成する場合、それらのライブラリは既定では実数/虚数分離型格納表現になり、この表現がパフォーマンス低下の原因になることがあります。これらの共有ライブラリでインターリーブされた表現を使用するには、mcc コマンドを実行するときに -M R2018a オプションを使用します。

R2018a オプションの場合、以下でビルドされます。

R2017b オプションの場合、以下でビルドされます。

  • MATLAB R2017b 以前の C および Fortran 行列 API の機能が含まれている実数/虚数分離型複素数 API。

  • 要素数が 231–1 を超える配列を扱う大規模配列ハンドリング API。

  • グラフィックス オブジェクトへのハンドルを double ではなく object として扱う。

MathWorks では、アプリケーションを作成して既存のアプリケーションを更新し、インターリーブされた複素数 API の R2018a オプションを使用することを推奨しています。あるいは、MX_HAS_INTERLEAVED_COMPLEX マクロを使用して、MATLAB の複数バージョンにわたって目的の動作を適用します。詳細については、MATLAB の MEX 関数におけるインターリーブされた複素数 API のサポートを参照してください。

mbuild の将来の呼び出しにおいて既定で使用する C/C++ コンパイラ オプション ファイルをユーザー プロファイル フォルダー (prefdir コマンドで返される) に配置して対話的に指定します。このオプションを指定した場合、他のコマンド ライン入力は受け入れられません。

mbuild の将来の呼び出しにおいて既定で使用する COM コンパイラ オプション ファイルをユーザー プロファイル フォルダー (prefdir コマンドで返される) に配置して対話的に指定します。このオプションを指定した場合、他のコマンド ライン入力は受け入れられません。

C プリプロセッサ シンボル <name> の初期定義を削除します。(-D オプションの逆。)

詳細モードを有効にします。オプション ファイルが処理され、すべてのコマンド ライン引数が考慮された後に、重要な内部変数の値を出力します。完全に評価された各コンパイル ステップおよび最終リンク ステップを出力します。

変数 <name> のオプション ファイル変数を補足またはオーバーライドします。このオプションは、オプション ファイルが処理され、すべてのコマンド ライン引数が考慮された後に処理されます。シェル構文で意味をもつスペースなどの文字を保護するために、シェルの引用構文を使用する必要が生じる場合があります。Windows では二重引用符が使用され (たとえば、COMPFLAGS="opt1 opt2")、UNIX では単一引用符が使用されます (たとえば、CFLAGS='opt1 opt2')。

既に定義されている変数を補足するためにこのオプションを使用するのが一般的です。これを行うには、$ を前に付けて変数を参照します (たとえば、Windows では COMPFLAGS="$COMPFLAGS opt2"、UNIX シェルでは CFLAGS='$CFLAGS opt2')。

gcc/g++ に基づいている MinGW-w64 コンパイラでは、単一引用符 (') を使用します。

例: COMPFLAGS="$COMPFLAGS opt2"

バージョン履歴

R2006a より前に導入

参考