2013-04-05 5 views
0

OS X 10.8의 MATLAB R2011a에서 mex를 실행 중입니다. 컴파일 프로세스가 거의 정상입니다. 하지만 링크 오류가 있습니다. 내가 MATLAB 명령 창에서 사용하는 명령 줄은 다음과 같습니다mex 파일을 컴파일 할 때 링크 오류가 발생했습니다.

mex -I/usr/include/ -L/usr/lib/ -O -DDEBUG -DFASTPLOG CalcEntropyScalesOpt.c Hists.c 

MS 윈도우에서 잘 실행되는 원래의 명령 줄

mex -O -DDEBUG -DFASTPLOG CalcEntropyScalesOpt.c Hists.c 

내가 몇 가지 오류를 수정하는 -I과 -L 옵션을 추가입니다 . 하지만 여전히 링크 오류가 존재합니다 :

Undefined symbols for architecture x86_64: 
"_mxCreateDoubleMatrix_700", referenced from: 
    _do_CalcSalScale1DAA in CalcEntropyScalesOpt.o 
    _do_CalcSalScale3D in CalcEntropyScalesOpt.o 
    _do_CalcSalScale2D in CalcEntropyScalesOpt.o 
    _do_CalcSalScale1DParzen in CalcEntropyScalesOpt.o 
    _do_CalcSalScale1D in CalcEntropyScalesOpt.o 
"_mxCreateNumericArray_700", referenced from: 
    _AACirclePix in CalcEntropyScalesOpt.o 
    _CirclePix2 in CalcEntropyScalesOpt.o 
... many more like this ... 
ld: symbol(s) not found for architecture x86_64 
collect2: ld returned 1 exit status 

mex: link of ' "CalcEntropyScalesOpt.mexmaci64"' failed. 

더 많은 -l 또는 -L 옵션이 필요하다고 생각하지만 거기에 쓸 내용을 모릅니다.

감사합니다.

감사합니다, 고정 리처드

답변

1

.

필요한 라이브러리는 mx (libmx.dylib)입니다. MATLABROOT/bin/maci64에 있으며 정상입니다. 그러나/usr/lib에 잘못된 심볼릭 링크가 있습니다. 링커가 실제로 libSystem.dylib를 가리키는 파일을 링크했습니다. 링크를 제거했는데 모든 것이 잘됩니다.

관련 문제