【问题标题】:compiling FFTW3 for multiple threads, linux, gcc为多线程、linux、gcc编译FFTW3
【发布时间】:2013-03-11 18:56:18
【问题描述】:

我正在尝试使用 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

即使它们应该产生故障,对吗?

【问题讨论】:

    标签: gcc parallel-processing openmp fftw


    【解决方案1】:

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

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

    【讨论】:

    • 用 find / -name libfftw3_omp.* ?
    • 啊,是的。我不知道我怎么没看到: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
    猜你喜欢
    • 1970-01-01
    • 2011-09-29
    • 2019-07-18
    • 2019-06-09
    • 1970-01-01
    • 2015-12-01
    • 2015-12-20
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多