为多线程,linux,gcc编译FFTW3

时间:2013-03-11 18:56:18

标签: gcc parallel-processing openmp fftw

我正在尝试使用GCC在我的linux机器上编译FFTW(3.3)。我没有使用多线程,一切都很好。现在我想切换到使用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

即使他们应该产生错误,对吧?

1 个答案:

答案 0 :(得分:3)

enable-openmp和enable-threads不是CFLAGS。 试试这个:

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