Hello Fellow Matlab / OS X Пользователи,
Мне было интересно, можете ли вы помочь мне еще раз.
Я получил здесь c-файл (st.c, частотно-временной анализ Stockwell для MEG-Data) для Matlab, который я должен скомпилировать для моей системы (OS X Lion, Xcode 4.1.1).
Включает
#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.
(Я должен сказать, что компиляция c-файла из примера Matlab (yprime.c) работает без проблем.)
Погуглив, я не смог найти много, но кто-то предложил следующее:
Для MATLAB необходимо 64-битное соединение (x86_64). Вам нужно найти рабочую
64-битный компилятор gfortran, чьи библиотеки являются 64-битными и
ABI-совместимый с Apple gcc.
Здесь http://r.research.att.com/tools/ Я нашел GNU Fortran 4.2.4 для Mac OS X 10.7.
Но это ничего не изменило, ошибка остается прежней.
Я предполагаю, что архитектура скомпилирована неверно, но я не знаю, как это изменить для Matlab / Xcode. Если это так, может кто-нибудь сказать мне, как это сделать?
Спасибо за вашу помощь