我正在使用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
类型,则会成功编译。
有谁知道为什么?
答案 0 :(得分:2)
因为相应的函数称为fftwf_mpi_init
和fftwf_destroy_plan
。摘自可以找到的文档here:
-lfftw3f
或-lfftw3l
代替(或除了)-lfftw3
。 (您可以同时链接到不同的精度库。)<fftw3.h>
标头文件。fftw_
的所有小写实例替换为fftwf_
或fftwl_
,以获得单精度或长双精度。 (fftw_complex
变为fftwf_complex
,fftw_execute
变为fftwf_execute
,等等。)FFTW_
开头的名称,保持不变。double
替换为float
或long double
以获取子例程参数。