我的目标是在一维示例上测试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
答案 0 :(得分:0)
您通常也必须设置路径,但我发现您使用的是-L/usr/local/lib
。这应该足以进行链接(不一定是为了运行)。
但是您编译的FFTW是静态的(.a
)并且您正在动态编译。您可以尝试使用-static
进行编译。如果您需要动态链接,则还需要安装库的动态版本(.so
)(即,不要在-enable-static
中使用configure
)。