如何解决Fortran中的“未定义引用”错误

时间:2019-06-12 07:42:01

标签: fortran fortran90 undefined-reference fftw

我尝试在Fortran中使用fftw3库。调用计划程序子例程时收到未定义的引用错误。

由于我既不精通Fortran,也不精通C语言,所以到目前为止,我所要做的就是重新阅读文档,并希望能找到解决方案。到目前为止,阅读和绊脚都没有成功。

我在ubuntu上工作,并使用gfortran。

gfortran dft.f90 fftw3.f90 dft_variable.f90 -L/usr/lib/x86_64-linux-gnu -libfftw3

dft.f90是主程序。

fftw3.f90包含fftw3常量。它们在这里找到:https://people.sc.fsu.edu/~jburkardt/f_src/fftw3/fftw3.f90

dft_variables.f90包含一些dft代码所需的变量和参数。


        Program simple_dft

        use fftw3
        use dft_variable

        Implicit none

          real, dimension(:),allocatable :: fft_in, fft_out, rho
          integer*8 :: plan,
          integer :: num_points

          {...} ! Here happens the calculation of the initial density rho

          allocate(fft_in(num_pts),fft_out(num_pts),rho(num_pts))

          fft_in = rho

          call dfftw_plan_dft_r2c_1d(plan,num_pts,fft_in,fft_out,FFTW_ESTIMATE)
          call dfftw_execute_dft(plan, fft_in,fft_out)

        End Program simple_dft

我希望计划者创建计算rho FFT所必需的计划。

_variable.f90 -L/usr/lib/x86_64-linux-gnu-libfftw3
/tmp/cc8nDlG7.o: In function `MAIN__':
dft.f90:(.text+0x3aeb): undefined reference to `dfftw_plan_dft_r2c_1d_'
dft.f90:(.text+0x3b0d): undefined reference to `dfftw_execute_dft_'
collect2: error: ld returned 1 exit status

0 个答案:

没有答案