компиляция FFTW3 для нескольких потоков, linux, gcc

Я пытаюсь скомпилировать FFTW (3.3) на своей Linux-машине, используя GCC. Я не использовал многопоточность, и все работало отлично. Теперь я хочу переключиться на использование OpenMP и многопоточность. Итак, я перекомпилирую FFTW3 для использования с потоками в соответствии с этими инструкциями:

http://www.fftw.org/doc/Installation-on-Unix.html#Installation-on-Unix

sudo ./configure CFLAGS=-enable-threads
sudo make
sudo make install

Если я затем поищу библиотеку fftw3_threads.h, я ничего не найду:

find / -name fftw3_*
.... nothing

То же самое, если я попытаюсь скомпилировать и включить openmp

sudo ./configure CFLAGS=-enable-openmp
sudo make
sudo make install

Компилятор не дает сбоев. Кажется, все работает. Однако, когда я пытаюсь включить любую из библиотек, мой код не компилируется.

#include <fftw3_threads.h>
#include <fftw3_omp.h>

Я получаю "ошибка нет такого файла или каталога"

Итак, несколько вопросов:

1.) почему мне нужен только один символ «-» при перечислении CFLAGS? Почему в руководстве FFTW перечислены все флаги, начинающиеся с «--». (Я понимаю, что это может быть не вопрос, связанный с FFTW).

2.) Что я делаю не так?

3.) Я вижу из руководства, что «по умолчанию подпрограммы потоков не компилируются». Если я пропущу «включения» из своего кода, он скомпилируется, и эти методы не будут вызывать ошибок:

int dummy = fftw_init_threads();
fftw_plan_with_nthreads(omp_get_max_threads()); // setup for multithreading

даже если они должны производить ошибки, не так ли?


person tir38    schedule 11.03.2013    source источник


Ответы (1)


enable-openmp и enable-threads не являются CFLAGS. Попробуйте это вместо этого:

sudo ./configure --enable-openmp
sudo make
sudo make install
person nat chouf    schedule 12.03.2013
comment
с помощью find / -name libfftw3_omp.* ? - person nat chouf; 15.03.2013
comment
О да. Не знаю, как я этого не видел: sudo find / -name libfftw3_omp.* /home/jaso/Downloads/fftw-3.3.3/threads/.libs/libfftw3_omp.a /home/jaso/Downloads/fftw-3.3.3/threads/.libs/libfftw3_omp.lai /home/jaso/Downloads/fftw-3.3.3/threads/.libs/libfftw3_omp.la /home/jaso/Downloads/fftw-3.3.3/threads/libfftw3_omp.la /usr/local/lib/libfftw3_omp.a /usr/local/lib/libfftw3_omp.la . . так что теперь мне просто нужно : #include libfftw3_omp - person tir38; 15.03.2013