外部インタフェース/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での作成のカスタマイズ | ![]() |