您好研究員基於Matlab/OS X用戶,OS X Lion中,MATLAB 2011A,墨西哥:未定義的符號體系結構x86_64的
我在想,如果你能幫助我再次。 我在這裏爲Matlab編譯了一個用於我的系統(OS X Lion,Xcode 4.1.1)的c文件(st.c,用於MEG-Data的Stockwell時頻分析)。 它包括
#include <fftw3.h>
所以我從http://www.fftw.org/下載最新版本並編譯它。 目前爲止這麼好。但是,如果我試圖編譯C文件
mex -st.c
我得到以下錯誤:
-> gcc-4.2 -O -Wl,-twolevel_namespace -undefined error -arch x86_64 -Wl,-syslibroot,/Developer/SDKs/MacOSX10.6.sdk -mmacosx-version-min=10.5 -bundle -Wl,-exported_symbols_list,/Applications/MATLAB_R2011a.app/extern/lib/maci64/mexFunction.map -o "st.mexmaci64" st.o -L/Applications/MATLAB_R2011a.app/bin/maci64 -lmx -lmex -lmat -lstdc++
Undefined symbols for architecture x86_64:
"_fftw_destroy_plan", referenced from:
_ist in st.o
_st in st.o
"_fftw_free", referenced from:
_ist in st.o
_st in st.o
"_fftw_malloc", referenced from:
_ist in st.o
_st in st.o
"_fftw_import_wisdom_from_file", referenced from:
_ist in st.o
_st in st.o
"_fftw_plan_dft_1d", referenced from:
_ist in st.o
_st in st.o
"_fftw_export_wisdom_to_file", referenced from:
_ist in st.o
_st in st.o
"_fftw_execute", referenced from:
_ist in st.o
_st in st.o
"_mexFunction", referenced from:
-exported_symbol[s_list] command line option
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
mex: link of ' "st.mexmaci64"' failed.
(我應該說,從MATLAB例子編譯C-文件(yprime.c)的作品,而不。任何問題) 谷歌搜索我不可能找到了,但有一個人提示如下:
MATLAB needs to link 64-bit (x86_64). You'll need to find a working 64-bit gfortran compiler whose libraries are 64-bit and ABI-compatible with Apple's gcc.
這裏http://r.research.att.com/tools/我發現GNU的Fortran 4.2.4適用於Mac OS X 10.7。 但這並沒有改變任何東西,錯誤仍然是一樣的。
我猜這個架構是以錯誤的方式編譯的,但我不知道如何改變Matlab/Xcode。如果是這樣的話,有人可以告訴我該怎麼做嗎?
感謝您的幫助
看起來您沒有爲x86_64編譯FFTW,或者它沒有與您的程序鏈接。你可以檢查嗎? – 2011-09-06 15:07:59
我把fft3w.h&fft3w.f放到matlabroot/extern/include中 如果我把它拿出來,出現下面的錯誤信息:'fftw3.h:沒有這樣的文件或目錄'。 我對mex和gcc不是很熟悉,這是檢查它是否以正確方式編譯和鏈接的最佳方法? – Irreducible
我對FFTW,Fortran和MATLAB都不熟悉,呵呵。也就是說,它看起來像'mex'調用'gcc'時沒有通過FFTW庫 - 至少我無法在'gcc'行識別它。或者,也許是這樣,但FFTW並沒有爲x86_64編譯。如果您有一個FFTW庫(可能帶有.o,.a或.dylib擴展名),請對其運行'lipo -info',它會告訴您已編譯的體系結構。 – 2011-09-06 18:29:59