| 外部インタフェース/API | ![]() |
UNIXシステムでは、MEX-ファイルの作成には、コンパイルとリンクの2つのステージがあります。
コンパイルステージ
-I<matlab>/extern/include)に<matlab>/extern/includeを追加します。MATLAB_MEX_FILE (-DMATLAB_MEX_FILE)を定義します。<matlab>/extern/src/mexversion.cをコンパイルします。リンクステージ
mexversion.cを含む)からすべてのオブジェクトをリンクします。<matlab>/extern/lib/$Arch/version4.oをリンクします。mexFunctionとmexVersionエクスポートします(これらのシンボルは、MATLABに呼び出される関数を表わします)。Fortran MEX-ファイルに対して、シンボルはすべて小文字で、アンダースコアが加えられることがあります。個々の情報に対しては、verboseモードでmexスクリプトを呼び込み、出力を調べてください。
ビルドオプション
作成プロセスのカスタマイズのために、オプションファイルを修正する必要があります。オプションファイルは、上記の一般の処理に対応するコンパイラ固有のフラグを含みます。オプションファイルは、変数の割り当てから成り立っています。各変数は、作成プロセスの論理部分を表わします。MATLABが提供するオプションファイルは、<matlab>/binにあります。mexスクリプトがオプションファイルを検索する方法は、「UNIXでのデフォルトオプションファイルの位置」に記述されています。
カスタマイズを柔軟に行うために、オプションファイル内でスイッチを使ってmexスクリプトのonとoffを行う2セットのオプションがあります。これらのオプションは、"デバッグモード"での作成と"最適化モード"での作成に対応します。これらはそれぞれ、呼び込まれる"ドライバ"に対して1組の変数DEBUGFLAGSとOPTIMFLAGSによって表わされます(Cコンパイラに対してはCDEBUGFLAGS、Fortranコンパイラに対しては FDEBUGFLAGS、リンカに対してはLDDEBUGFLAGSで、OPTIMFLAGSも同様です)。
mexスクリプトはコンパイルおよびリンクステージでOPTIMFLAGSオプションをインクルードします。mexスクリプトはコンパイルおよびリンクステージでDEBUGFLAGSオプションをインクルードしますが、OPTIMFLAGSオプションはインクルードしません。mexスクリプトに最適化とデバッグのフラグ(それぞれ-Oと-g)の両方を指定することで、両方のオプションをインクルードすることができます。.これらの特殊な変数とは別に、mexオプションファイルは、3つのモード(Cのコンパイル、Fortranのコンパイル、リンク)に対し呼び込まれる実行ファイルと、各ステージに対するフラグを定義します。各言語のソースファイルを含むMEX-ファイルに対してリンクされなければならないライブラリのリストを与えることもできます。
| 変数 |
Cコンパイラ |
Fortranコンパイラ |
リンカ |
| 実行可能 |
CC |
FC |
LD |
| フラグ |
CFLAGS |
FFLAGS |
LDFLAGS |
最適化 |
COPTIMFLAGS |
FOPTIMFLAGS |
LDOPTIMFLAGS |
| デバッグ |
CDEBUGFLAGS |
FDEBUGFLAGS |
LDDEBUGFLAGS |
| 追加ライブラリ |
CLIBS |
FLIBS |
---- |
これらの変数のデフォルト設定の特性について、つぎのことを行えます。
<matlab>/bin/mexopts.shにあるオプションファイル(または使っているオプションファイル)を調べます。 mexスクリプトを呼び込みます。 | Windowsでのデフォルトオプションファイル | Windowsでの作成のカスタマイズ | ![]() |