gpt4 book ai didi

linux - 编译 Fortran 示例时找不到 -lfftw

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:56 25 4
gpt4 key购买 nike

我的目标只是在一维示例上测试 FFTW。我已经按照说明安装了所有东西。当我尝试编译时:

gfortran fftg.f90 -L/usr/local/lib -lfftw3

终端报错:

/usr/bin/ld : can't find -lfftw3

我不明白为什么,因为它安装在我的计算机上,当我搜索它时,FFTW 的库在这里

 /usr/local/lib$ ls
cmake libfftw3.a libfftw3.la pkgconfig python2.7 python3.4 R site_ruby

我没有找到任何答案。错误来自哪里?有关详细信息,这是我的代码(取自 http://homepage.ntu.edu.tw/~wttsai/fortran )

program example

implicit none
include 'fftw3.f90'
integer, parameter :: N=16
integer*8 :: PLAN_FOR,PLAN_BAC
real*8,dimension(N) :: IN,OUT,IN2
real*8 :: xj
integer :: j,k,mode
real*8, parameter ::twopi=2.*acos(-1.)
!Discrete data of function f(x)=cos(x)+0.2*sin(2x)
do j=0,N-1
xj=twopi*real(j)/real(N)
IN(j)=cos(xj) +0.2*sin(2.*xj)
end do

write(*,*) "Original data"
do j=1,N
write(*,100) j,IN(j)
end do
100 format(i4,f12.5)

! Forward transform

call dfftw_plan_r2r_1d(PLAN_FOR,N,IN,OUT,FFTW_R2HC,FFTW_ESTIMATE)
call dfftw_execute_r2r(PLAN_FOR,IN,OUT)
OUT=OUT/real(N,KIND=8)

! Normalize
write(*,*) "Fourier coefficient after forward FFT"

do k=1,N
mode=k-1
if(k > N/2+1) mode=N-k+1
write(*,100) mode,OUT(k)
end do

call dfftw_destroy_plan(PLAN_FOR)
end program example

最佳答案

您通常也必须设置路径,但我看到您使用的是 -L/usr/local/lib反而。这应该足以用于链接(不一定用于运行)。

但您编译的 FFTW 是静态的 ( .a ) 而您正在动态编译。您可以尝试使用 -static 进行编译.如果您需要动态链接,您还需要安装库的动态版本 ( .so )(即不要在 -enable-static 中使用 configure)。

关于linux - 编译 Fortran 示例时找不到 -lfftw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47437188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com