Я пытаюсь скомпилировать 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
даже если они должны производить ошибки, не так ли?