mex (MacOSX Lion 上の MATLAB 2012b) を使用して C ファイルをコンパイルしようとしています。私のプロジェクトは 3 つのファイルで構成されています。
- 主な機能が定義されているヘッダー ファイル、smdvquad.h
- smdvquad.h の C 実装、つまりsmdvquad.cは #include smdvquad.h と
- 「mexFunction」を含む AC ファイル、つまりsmdvquad.hを #include する mxsmdvquad.c
プロジェクト全体は Netbeans で完全に正常にコンパイルされますが、MATLAB で mex を使用してコンパイルしようとすると、つまり次のコマンドを使用します。
mex -largeArrayDims mxsmdvquad.c
次のエラーがスローされます。
>> mex -largeArrayDims mxsmdvquad.c
Undefined symbols for architecture x86_64:
"_smdv_quad", referenced from:
_mexFunction in mxsmdvquad.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
mex: link of ' "mxsmdvquad.mexmaci64"' failed.
Error using mex (line 206)
Unable to complete successfully.
また、-I mex-引数を使用して作業ディレクトリを指定しようとしました。
mex -largeArrayDims -I/path/to/my/project/ mxsmdvquad.c
しかし無駄に!