【发布时间】:2014-01-21 12:06:36
【问题描述】:
我正在尝试在 Xcode(版本 4.6.3)中构建一个 MATLAB MEX 文件以进行调试。我已经能够使用以下命令在 MATLAB (R2013a) 中成功编译程序:
>> mex src/main.c src/binomial.c src/gaussian1.c src/gaussianU.c src/poisson.c -Iinclude -I/usr/local/include -L/usr/local/lib -lmpfr -output cpdetect_c
当我尝试在 Xcode 中构建它时,程序编译成功,但在链接阶段构建失败并出现如下错误:
Undefined symbols for architecture x86_64:
"_mexErrMsgIdAndTxt", referenced from:
_mexFunction in main.o
"_mexPrintf", referenced from:
_find_gaussian1_change_point in gaussian1.o
_cpdetect in main.o
_find_poisson_change_point in poisson.o
"_mpfr_add", referenced from:
_find_gaussian1_change_point in gaussian1.o
_find_gaussianU_change_point in gaussianU.o
_find_poisson_change_point in poisson.o
"_mxCreateDoubleMatrix_730", referenced from:
_mexFunction in main.o
如this post中所述,我在Xcode中有以下设置:
>> Other Linker Flags: -lmx -lmex -lmat -lmpfr
>> Header Search Paths: $(MATLABROOT)/extern/include /Users/myName/Documents/MATLAB/SingleMolecule/Current_Version/cpdetect_c_mex/include /usr/local/include
>> Library Search Paths: $(MATLABROOT)/bin/maci64 /usr/local/lib
但这显然不足以成功链接。我错过了什么?
感谢您的任何建议!
【问题讨论】: