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]
は、ユーザーが記述した C または C++ コードを MATLAB の生成された共有ライブラリに対してコンパイルしてリンクします。 sourceFile
例
C/C++ コンパイラのセットアップ
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
と上記で生成されたライブラリの両方が現在の作業フォルダーにあることを前提としています。
C プログラムのコンパイルとリンク
libfoo
に対して外部 C プログラム foo.c
をコンパイルおよびリンクするには、以下を使用します。
mbuild foo.c -L. -lfoo (on UNIX) mbuild foo.c libfoo.lib (on Windows)
ここでは、foo.c
と上記で生成されたライブラリの両方が現在の作業フォルダーにあることを前提としています。
入力引数
sourceFile
— コンパイル対象のファイル (複数)
(既定値) |
コンパイル対象のファイル。文字ベクトルまたは string スカラーとして指定します。
サポートされているソース ファイルのタイプは以下のとおりです。
.c
.cpp
オプションではなく、サポートされているソース ファイルのタイプのいずれにも属していない、mbuild
への引数はライブラリ名とみなされ、リンカーに渡されます。
例: "mylib.cpp"
@<rspfile>
— コマンド ライン引数ファイル
(既定値) |
<rspfile>
mbuild
へのコマンド ライン引数としてテキスト ファイル rspfile
の内容を含めます。このオプションは Windows でのみ使用できます。
-c
— コンパイルのみ
(既定値) |
コンパイルのみ。オブジェクト ファイルのみを作成します。
-D<name>
[=<value>
]
— C プリプロセッサにシンボル名を定義
(既定値) |
<name>
[=<value>
]C プリプロセッサにシンボル名を定義します。ソースの #define <name>
命令と等価です。
値を指定する場合は、C プリプロセッサにシンボル名と値を定義します。ソースの #define <name> <value>
命令と等価です。
D と <name>
の間にスペースを追加しないでください。= 記号の前後にスペースを追加しないでください。
例: -DSPACE_PADDING
-f <optionsfile>
— オプション ファイル
(既定値) |
<optionsfile>
使用するオプション ファイルの場所と名前を指定します。mbuild
の既定のオプション ファイル検索方法をオーバーライドします。このオプションにより、コンパイラの別の呼び出しに対して別の ANSI コンパイラを使用できます。
このオプションは mcc
を使用して指定することもできます。
-g
— デバッグ シンボルを追加
(既定値) |
デバッグで使用する追加のシンボル情報が含まれた実行可能ファイルを作成します。このオプションにより、ビルドされるオブジェクト コードを最適化する mbuild
の既定の動作が無効になります (-O
オプションを参照)。
-h,-help
— ヘルプ テキスト
(既定値) |
mbuild
のヘルプを出力します。
-I<pathname>
— フォルダーをインクルード パスに追加
(既定値) |
<pathname>
#include
ファイルを検索するフォルダーのリストに
を追加します。<pathname>
-l<name>
— オブジェクト ライブラリにリンク
(既定値) |
<name>
オブジェクト ライブラリにリンクします。<name>
は、Windows システムでは <name>.lib
または lib<name>.lib
に展開され、UNIX システムでは lib<name>.so
または lib<name>.dylib
に展開されます。
I
と <name>
の間にスペースを追加しないでください。
メモ
ライブラリにリンクする場合には、まず (たとえば -L<pathname>
を使用して) パスを指定する必要があります。
-L<folder>
— フォルダーを検索パスに追加
(既定値) |
<folder>
-l
オプションで指定されたライブラリを検索するフォルダーのリストに
を追加します。UNIX システムでは、実行時ライブラリ パスも設定する必要があります。<folder>
使用する場合、-L
オプションは -l
オプションの前に置かなければなりません。Linux® システムまたは macOS システムで -L
オプションを使用する場合は、ランタイム ライブラリのパスも設定しなければなりません。詳細については、ランタイム ライブラリ パスの設定を参照してください。
L
と <folder>
の間にスペースを追加しないでください。
-n
— 実行なしモード
(既定値) |
これを指定しなかった場合に mbuild
で実行されるコマンドを出力しますが、それらのコマンドは実際には実行されません。
-O
— オブジェクト コードを最適化
(既定値) |
最適化を使用してコンパイルするには、このオプションを使用します。最適化は既定で有効になっています。-g
オプションが指定されていても、-O
オプションが指定されていない場合、最適化は無効になります。
-outdir <dirname>
— 出力フォルダー
(既定値) |
<dirname>
すべての出力ファイルをフォルダー
に配置します。<dirname>
-output <resultname>
— 実行可能ファイル名
(既定値) |
<resultname>
という名前の実行可能ファイルを作成します。適切な実行可能ファイルの拡張子が自動的に追加されます。<resultname>
mbuild
の既定の実行可能ファイルの命名メカニズムをオーバーライドします。
-R2017b|-R2018a
— 複素数 API のタイプ
(既定値)
関数 mcc
を使用して mxArray
に基づく C 共有ライブラリまたは mwArray
に基づく C++ 共有ライブラリを生成する場合、それらのライブラリは既定では実数/虚数分離型格納表現になり、この表現がパフォーマンス低下の原因になることがあります。これらの共有ライブラリでインターリーブされた表現を使用するには、mcc
コマンドを実行するときに -M R2018a
オプションを使用します。
R2018a オプションの場合、以下でビルドされます。
型付きデータ アクセス関数が含まれるインターリーブされた複素数 API。詳細については、インターリーブされた複素数 API を使用するように MEX ファイルをアップグレードを参照してください。
大規模配列ハンドリング API
グラフィックス オブジェクトへのハンドルを
double
ではなくobject
として扱う。
R2017b オプションの場合、以下でビルドされます。
MATLAB R2017b 以前の C および Fortran 行列 API の機能が含まれている実数/虚数分離型複素数 API。
要素数が 231–1 を超える配列を扱う大規模配列ハンドリング API。
グラフィックス オブジェクトへのハンドルを
double
ではなくobject
として扱う。
MathWorks では、アプリケーションを作成して既存のアプリケーションを更新し、インターリーブされた複素数 API の R2018a オプションを使用することを推奨しています。あるいは、MX_HAS_INTERLEAVED_COMPLEX
マクロを使用して、MATLAB の複数バージョンにわたって目的の動作を適用します。詳細については、MATLAB の MEX 関数におけるインターリーブされた複素数 API のサポートを参照してください。
-setup
— オプション ファイルを指定
(既定値) |
mbuild
の将来の呼び出しにおいて既定で使用する C/C++ コンパイラ オプション ファイルをユーザー プロファイル フォルダー (prefdir
コマンドで返される) に配置して対話的に指定します。このオプションを指定した場合、他のコマンド ライン入力は受け入れられません。
-setup -client mbuild_com
— COM オプション ファイルを指定
(既定値) |
mbuild
の将来の呼び出しにおいて既定で使用する COM コンパイラ オプション ファイルをユーザー プロファイル フォルダー (prefdir
コマンドで返される) に配置して対話的に指定します。このオプションを指定した場合、他のコマンド ライン入力は受け入れられません。
-U<name>
— シンボルを削除
(既定値) |
<name>
C プリプロセッサ シンボル <name>
の初期定義を削除します。(-D
オプションの逆。)
-v
— 詳細モード
(既定値) |
詳細モードを有効にします。オプション ファイルが処理され、すべてのコマンド ライン引数が考慮された後に、重要な内部変数の値を出力します。完全に評価された各コンパイル ステップおよび最終リンク ステップを出力します。
<name>
=<value>
— オプション ファイル変数をオーバーライド
(既定値)
<name>
=<value>
変数 <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 より前に導入
参考
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)