FFTW:对fftw_mpi_init的未定义引用

时间:2014-07-24 18:18:19

标签: mpi fftw

我正在使用MPI运行FFTW,但在使用-lfftw3f_mpi -lfftw3f -lm编译程序时会触发未定义的引用错误,如下所示。

function main: error: undefined reference to 'fftw_mpi_init'
function main: error: undefined reference to 'fftw_destroy_plan'

但是如果使用-lfftw3_mpi -lfftw3 -lm进行修改,默认使用double类型,则会成功编译。

有谁知道为什么?

1 个答案:

答案 0 :(得分:2)

因为相应的函数称为fftwf_mpi_initfftwf_destroy_plan。摘自可以找到的文档here

  • 链接到单/长双库;在Unix上,-lfftw3f-lfftw3l代替(或除了)-lfftw3。 (您可以同时链接到不同的精度库。)
  • 包含相同的<fftw3.h>标头文件。
  • 分别将fftw_的所有小写实例替换为fftwf_fftwl_,以获得单精度或长双精度。 (fftw_complex变为fftwf_complexfftw_execute变为fftwf_execute,等等。)
  • 大写名称,即以FFTW_开头的名称,保持不变。
  • double替换为floatlong double以获取子例程参数。