Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Problem with FFTW routines

Alessandro
Beginner
1,319 Views
Hello,
I'm trying to use the FFTW routines from MKL. I'm under Windows XP64, Visual Studio 2008, Intel Fortran Compiler 11.0.074. I'm trying to build the following example found on the forum:


implicit none
include "fftw3.f"

integer n
parameter (n=16)

integer*8 plan, iplan

double complex in, out
dimension in(N), out(N)

integer i


print *,"n = ",n
print *,"input = "
do i=1,n
in(i) = (1.0, 0.0)
print *,in(i)
enddo

print *,"fftw_fwd = ",fftw_forward
print *,"fftw_bkwd = ",fftw_backward
print *,"fftw_estimate = ",fftw_estimate

!call dfftw_plan_dft_1d(plan, n,in,out,fftw_forward, FFTW_ESTIMATE)
call DFFTW_PLAN_DFT_1D(plan, n,in,out,fftw_forward, FFTW_ESTIMATE)
call dfftw_plan_dft_1d(iplan,n,out,in,fftw_backward,FFTW_ESTIMATE)

print *,"address of fwd plan = ",plan
print *,"address of bckwd plan = ",iplan

call dfftw_execute(plan)

print *, 'output after forward fft:'
do i=1,n
print *, out(i)
enddo

call dfftw_execute(iplan)

print *, 'after inverse fft:'
do i=1,n
print *, in(i)
enddo

call dfftw_destroy_plan(plan)
call dfftw_destroy_plan(iplan)

end



I followed these steps:
1) created the fftw3xf_intel.lib with the command nmake lib64emt
2) created the project in VS2008 with the main file and the file mkl_fftw_examples.fi
3) added fftw3xf_intel.lib in the tab linker -> input -> additional dependencies
4) added the path of the fftw3xf_intel.lib in the tag linker -> general -> additional librariy directories

When I try to build i get the following errors:

Error 1 error LNK2019: unresolved external symbol for_set_reentrancy referenced in function MAIN__ Source2.obj
Error 2 error LNK2019: unresolved external symbol for_write_seq_lis referenced in function MAIN__ Source2.obj
Error 3 error LNK2019: unresolved external symbol for_write_seq_lis_xmit referenced in function MAIN__ Source2.obj
Error 4 error LNK2019: unresolved external symbol for_emit_diagnostic referenced in function MAIN__ Source2.obj
Error 5 error LNK2001: unresolved external symbol _fltused Source2.obj
Error 6 error LNK2001: unresolved external symbol _fltused fftw3xf_intel.lib(tt_fftw_in_to_out.obj)
Error 7 error LNK2001: unresolved external symbol _fltused fftw3xf_intel.lib(tt_fftw_norm.obj)
Error 8 error LNK2001: unresolved external symbol mainCRTStartup LINK
Error 9 error LNK2019: unresolved external symbol malloc referenced in function fftw_plan_dft_1d fftw3xf_intel.lib(fftw_plan_dft_1d.obj)
Error 10 error LNK2019: unresolved external symbol DftiCreateDescriptor referenced in function fftw_plan_dft_1d fftw3xf_intel.lib(fftw_plan_dft_1d.obj)
Error 11 error LNK2019: unresolved external symbol DftiErrorClass referenced in function fftw_plan_dft_1d fftw3xf_intel.lib(fftw_plan_dft_1d.obj)
Error 12 error LNK2019: unresolved external symbol DftiSetValue referenced in function fftw_plan_dft_1d fftw3xf_intel.lib(fftw_plan_dft_1d.obj)
Error 13 error LNK2019: unresolved external symbol DftiFreeDescriptor referenced in function fftw_plan_dft_1d fftw3xf_intel.lib(fftw_plan_dft_1d.obj)
Error 14 error LNK2001: unresolved external symbol DftiFreeDescriptor fftw3xf_intel.lib(fftw_destroy_plan.obj)
Error 15 error LNK2019: unresolved external symbol free referenced in function fftw_plan_dft_1d fftw3xf_intel.lib(fftw_plan_dft_1d.obj)
Error 16 error LNK2001: unresolved external symbol free fftw3xf_intel.lib(fftw_destroy_plan.obj)
Error 17 error LNK2019: unresolved external symbol DftiCommitDescriptor referenced in function fftw_plan_dft_1d fftw3xf_intel.lib(fftw_plan_dft_1d.obj)
Error 18 error LNK2019: unresolved external symbol d_forward_trig_transform referenced in function fftw_execute fftw3xf_intel.lib(fftw_execute.obj)
Error 19 error LNK2019: unresolved external symbol printf referenced in function fftw_execute fftw3xf_intel.lib(fftw_execute.obj)
Error 20 error LNK2019: unresolved external symbol d_backward_trig_transform referenced in function fftw_execute fftw3xf_intel.lib(fftw_execute.obj)
Error 21 error LNK2001: unresolved external symbol d_backward_trig_transform fftw3xf_intel.lib(tt_fftw_norm.obj)
Error 22 error LNK2019: unresolved external symbol DftiComputeBackward referenced in function fftw_execute fftw3xf_intel.lib(fftw_execute.obj)
Error 23 error LNK2019: unresolved external symbol DftiComputeForward referenced in function fftw_execute fftw3xf_intel.lib(fftw_execute.obj)
Error 24 error LNK2019: unresolved external symbol free_trig_transform referenced in function fftw_destroy_plan fftw3xf_intel.lib(fftw_destroy_plan.obj)
Error 25 error LNK2019: unresolved external symbol _intel_fast_memcpy referenced in function tt_fftw_in_to_out fftw3xf_intel.lib(tt_fftw_in_to_out.obj)
Error 26 error LNK2001: unresolved external symbol _intel_fast_memcpy fftw3xf_intel.lib(tt_fftw_norm.obj)
Error 27 fatal error LNK1120: 20 unresolved externals x64\Debug\FFTW_ex1.exe


If I try to compile for 32bit (after generating and linking the .lib obtained with the command nmake lib32) I instead get the following errors:

Error 1 error LNK2019: unresolved external symbol _DFFTW_PLAN_DFT_1D referenced in function _MAIN__ Source2.obj
Error 2 error LNK2019: unresolved external symbol _DFFTW_EXECUTE referenced in function _MAIN__ Source2.obj
Error 3 error LNK2019: unresolved external symbol _DFFTW_DESTROY_PLAN referenced in function _MAIN__ Source2.obj
Error 4 fatal error LNK1120: 3 unresolved externals Debug\FFTW_ex1.exe


Could someone please help me? Thanks in advance.

Alessandro

0 Kudos
1 Reply
Gennady_F_Intel
Moderator
1,319 Views

Alessandro,
I tried to reproduce the problem you encountered but I couldn't.
Nevertheless, I uploaded to this thread the VS2008 project. You can find it into attachments (fftw_problem.zip )
You can get it and try to build on your side.
--Gennady
0 Kudos
Reply