Связывание FFTW с файлом Matlab Mex

Я пытаюсь запустить код FFTW в файле mex. Это строго для целей разработки и тестирования. После некоторого поиска в Google я вижу, что другие пытались сделать что-то подобное и имели связанные проблемы, но я не нашел никаких решений. При попытке запустить mex-файл Matlab сообщает мне:

??? Ошибка при использовании ==> chirpTransform.mxCta Неверный MEX-файл '\ удален \ мой \ каталог \ + chirpTransform \ mxCta.mexw32': Указанная процедура не могла быть найдено.

.

Я использую gnumex с MinGW для создания файла mex, потому что LCC, похоже, имеет некоторые проблемы. Я пробовал использовать 32-битную DLL с сайта FFTW ( http://www.fftw.org/install/windows.html ). Я пробовал использовать fftwf3.dll в каталоге bin Matlab 2009b. Я собрал dll из исходников с помощью Msys / MinGW. Во всех случаях результаты одинаковы. Во всех случаях для создания файла библиотеки я делал следующее.

c: \ gnumex \ mexdlltool.exe -d libfftw3f-3.def -D libfftw3f-3.dll -l libfftw3f.lib --as C: \ MinGW \ bin \ as.exe

Я также пробовал использовать инструмент Visual Studio lib.exe и экспериментировал с различными флагами mexdlltool.

Похоже, что я могу напрямую вызывать функции в fftwf3-3.dll с использованием функции загрузки библиотеки Matlab. Поскольку проблема не в DLL, я попытался создать статическую версию fftwf3 и связать ее непосредственно с файлом mex. Я получил такие же результаты! Если я удалю код FFTW, файл mex будет работать нормально. На этом я уже почти сдался, и я пытаюсь придумать альтернативные методы тестирования.

6
задан user1207217 24 January 2013 в 11:24
поделиться