我正在尝试使用 mex(MacOSX Lion 上的 MATLAB 2012b)编译 C 文件。我的项目包含三个文件:
- 定义主要功能的头文件,smdvquad.h
- smdvquad.h 的 C 实现,即smdvquad.c其中#includes smdvquad.h 和
- 包含“mexFunction”的 AC 文件,即mxsmdvquad.c其中#includes smdvquad.h
整个项目在 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-argument 指定工作目录,即
mex -largeArrayDims -I/path/to/my/project/ mxsmdvquad.c
但徒劳!