gfortran在Ubuntu 12.04上找不到FFTW3库,虽然它适用于Linux Mint 17.3

时间:2016-06-21 02:59:57

标签: ubuntu fortran fftw

我在Ubuntu 12.04和Linux Mint 17.3上使用FFTW3和gfortran。 虽然我为两个操作系统编写了相同的代码,但它不仅适用于Ubuntu。 对于两者,我安装如下:

$ sudo apt-get install gfortran libfftw3-dev

然后,我可以找到 /usr/include/fftw3.f03 同时。 此外,我可以在Ubuntu中找到/usr/lib/libfftw3.a(和*.so),在Linux Mint中找到/usr/lib/x86_64-linux-gnu/libfftw3.a(和*.so)。

接下来,我写了以下fortran代码:

program test
use,intrinsic :: iso_c_binding
implicit none
(statements)
include 'fftw3.f03"
...
plan = fftw_plan_dft_1d(N, signal, spectrum, -1, fftw_estimate)
call fftw_execute_dft(plan, signal, spectrum)
...

通过

编译

$ gfortran test.f03 -I/usr/include -L/usr/lib -lfftw3 -lm

我在Linux Mint中获取了一个可执行文件。 但是,Ubuntu说

/tmp/(random charcters).o: In function `Main__':
test.f03:(.text+0x9ce): undefined reference to `fftw_plan_dft_1d'
test.f03:(.text+0x9ef): undefined reference to `fftw_execute_dft'
collect2: ld returned 1 exit status

gfortran和FFTW3的版本: 对于Ubuntu 12.04,

  • gfortran 4.6.3-1ubuntu5
  • libfftw3-dev 3.3-1ubuntu1

对于Linux Mint 17.3,

  • gfortran 4.8.2-1ubuntu6
  • libfftw3-dev 3.3-7ubuntu3

我应该在Ubuntu中使用不同的编译选项吗? 或者我错误地指定了库直接? 请让我知道相关的事情。 感谢。

0 个答案:

没有答案