2013-11-22 3 views
3

Уверен, что это простая проблема, но у меня тяжелое время. Я использую этот фрагмент кода от http://www.fftw.org/fftw2_doc/fftw_2.html. У меня установлена ​​библиотека (через доморощенный). Папка include (/ usr/local/include) имеетFFTW на Mac OS X Mavericks выпускает

fftw3.f 
fftw3.f03 
fftw3.h 
fftw3l.f03 
fftw3q.f03 

Это фрагмент кода с сайта. Я попробовал его с обеих fttw.h и fttw3.h

#include <fftw.h> 

int main (int argc, char** argv){ 
fftw_complex in[N], out[N]; 
fftw_plan p; 

p = fftw_create_plan(N, FFTW_FORWARD, FFTW_ESTIMATE); 

fftw_one(p, in, out); 

fftw_destroy_plan(p); 

    return 0; 
} 

Он продолжает бросать

fftwtest.c:1:10: fatal error: 'fftw3.h' file not found 
#include <fftw3.h> 
    ^
1 error generated. 
+2

не эта ошибка, но тот, который вы будете иметь следующий: Этот код использует старую версию 2 API FFTW в , но у вас установлена ​​текущая (обратная несовместимая) версия. Читайте на http://www.fftw.org/fftw3_doc – tab

+0

Если вы просто хотите рассчитать БПФ на OS X, то у вас уже есть доступная инфраструктура Accelerate, то есть вам не нужно использовать FFTW, если вы не хотите, чтобы ваш код был кросс-платформенный. –

ответ

6

/usr/local/include и /usr/local/lib больше не находятся в пути поиска заголовков по умолчанию в Mavericks. Вам нужно будет добавить их с -I и -L флажками соответственно.

+0

Интересные изменения ... не то, что я заметил и старое поведение. –

+0

Мне пришлось изменить некоторые make-файлы проекта. Мне это не нравится, но я не принимаю решения, поэтому ... –

+1

Как вы их добавляете? – user906357

1

Вам нужны правильные флаги компилятора. Добавьте /usr/local/include в путь поиска заголовка. Это делается с флагом -I для компилятора, или если вы используете Xcode, вы можете установить его в настройках проекта.

1

я наконец-то смог установить pyfftw через следующее, все в одном сеансе терминала:

brew install fftw 
export DYLD_LIBRARY_PATH=/usr/local/lib 
export LDFLAGS="-L/usr/local/include" 
export CFLAGS="-I/usr/local/include" 
pip install pyfftw 
+0

Это работало для меня с небольшим изменением: мне пришлось использовать 'export LDFLAGS =" - L/usr/local/lib "' (с '/ lib' вместо'/include'). –

Смежные вопросы