wavelet1d icon indicating copy to clipboard operation
wavelet1d copied to clipboard

error LNK 2019

Open GoogleCodeExporter opened this issue 9 years ago • 10 comments

Hello, I am trying to run the code wavelet2d.cpp but I am getting the following 
error:

wavelet2d.obj : error LNK2019: unresolved external symbol _fftw_destroy_plan 
referenced in function "double __cdecl convfft(class std::vector<double,class 
std::allocator<double> > &,class std::vector<double,class 
std::allocator<double> > &,class std::vector<double,class 
std::allocator<double> > &)" 
(?convfft@@YANAAV?$vector@NV?$allocator@N@std@@@std@@00@Z)

I am using Microsoft Visual Studio 2010 and OpenCV 2.4.3.

I linked the wavelet2d.lib in the additional dependencies.
I also placed the dll files in the opencv folder.

Can you please help me?


Original issue reported on code.google.com by [email protected] on 9 Mar 2013 at 1:33

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

This appears to be a linker error. Make sure that the two DLLs (libfftw3-3.dll 
and wavelet2d.dll ) are placed in the Project "Debug" folder next to your exe 
file. Also check that the correct header file ( wavelet2d.h) is included .

Original comment by [email protected] on 10 Mar 2013 at 11:31

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

It's working. Thanks :)

Original comment by [email protected] on 10 Mar 2013 at 4:29

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

Hello again. I need only one image for the wavelet transform.
I am doing a project on hand vein and I need to extract the features by 
applying wavelet transform and for this I need only one wavelet transform image 
but not several images decomposed totally in one window.

Do you know how I can do it?

Original comment by [email protected] on 13 Mar 2013 at 3:00

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

[deleted comment]

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

It is straightforward. dwt_output vector contains all the images stored 
sequentially in a one dimensional vector.

dwt output vector (dwt_output) is a 1D vector and the rows and
columns of A,H,V,D are stored in length vector. length(0) and
length(1) store the rows and column values at level J, length(2) and
length(3) store the rows and column values at level J-1 etc.

  So A(j) part is the first length(0)*length(1) values stored in
dwt_output vector followed by H(j),V(j) and D(j). All A,H,V and D at
the same level are of same dimensions so if length(0)=15 and
length(1)=20, you can extract first 300 values as A(j), next 300 as
H(j) and so on. More here.

http://code.google.com/p/wavelet1d/wiki/newfunc

Also check the idwt_2d_sym and idwt_2d codes at

http://code.google.com/p/wavelet1d/source/browse/trunk/wavelet2d/src_MINGWDLL/wa
velet2d.cpp

eg. lines 726-746

Original comment by [email protected] on 14 Mar 2013 at 8:42

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

[deleted comment]

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

Hi
I am trying to run 2SWT code. but I face with below errors:

So I was wondering if you could help me. Thanks in advance. 



1>Link:
1>     Creating library D:\FatemehDta\visual studio 
2010\Projects\waveletdenoising\Debug\waveletdenoising.lib and object 
D:\FatemehDta\visual studio 
2010\Projects\waveletdenoising\Debug\waveletdenoising.exp
1>wavelet2d.obj : error LNK2019: unresolved external symbol 
__imp__fftw_destroy_plan referenced in function "double __cdecl convfft(class 
std::vector<double,class std::allocator<double> > &,class 
std::vector<double,class std::allocator<double> > &,class 
std::vector<double,class std::allocator<double> > &)" 
(?convfft@@YANAAV?$vector@NV?$allocator@N@std@@@std@@00@Z)
1>wavelet2d.obj : error LNK2019: unresolved external symbol __imp__fftw_free 
referenced in function "double __cdecl convfft(class std::vector<double,class 
std::allocator<double> > &,class std::vector<double,class 
std::allocator<double> > &,class std::vector<double,class 
std::allocator<double> > &)" 
(?convfft@@YANAAV?$vector@NV?$allocator@N@std@@@std@@00@Z)
1>wavelet2d.obj : error LNK2019: unresolved external symbol __imp__fftw_execute 
referenced in function "double __cdecl convfft(class std::vector<double,class 
std::allocator<double> > &,class std::vector<double,class 
std::allocator<double> > &,class std::vector<double,class 
std::allocator<double> > &)" 
(?convfft@@YANAAV?$vector@NV?$allocator@N@std@@@std@@00@Z)
1>wavelet2d.obj : error LNK2019: unresolved external symbol 
__imp__fftw_plan_dft_1d referenced in function "double __cdecl convfft(class 
std::vector<double,class std::allocator<double> > &,class 
std::vector<double,class std::allocator<double> > &,class 
std::vector<double,class std::allocator<double> > &)" 
(?convfft@@YANAAV?$vector@NV?$allocator@N@std@@@std@@00@Z)
1>wavelet2d.obj : error LNK2019: unresolved external symbol __imp__fftw_malloc 
referenced in function "double __cdecl convfft(class std::vector<double,class 
std::allocator<double> > &,class std::vector<double,class 
std::allocator<double> > &,class std::vector<double,class 
std::allocator<double> > &)" 
(?convfft@@YANAAV?$vector@NV?$allocator@N@std@@@std@@00@Z)
1>wavelet2d.obj : error LNK2019: unresolved external symbol 
__imp__fftw_execute_dft referenced in function "double __cdecl convfftm(class 
std::vector<double,class std::allocator<double> > &,class 
std::vector<double,class std::allocator<double> > &,class 
std::vector<double,class std::allocator<double> > &)" 
(?convfftm@@YANAAV?$vector@NV?$allocator@N@std@@@std@@00@Z)
1>D:\FatemehDta\visual studio 
2010\Projects\waveletdenoising\Debug\waveletdenoising.exe : fatal error 
LNK1120: 6 unresolved externals
1>
1>Build FAILED. 

Original comment by [email protected] on 12 Sep 2013 at 2:25

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

[deleted comment]

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

Could you elaborate more about below statement? How can I generate the 
fftw3.lib? 
I appreciate your help. 



 In order to link to them from Visual C++, you will need to create .lib "import libraries" using the lib.exe program included with VC++. Run:

     lib /def:libfftw3-3.def
     lib /def:libfftw3f-3.def
     lib /def:libfftw3l-3.def

Original comment by [email protected] on 12 Sep 2013 at 6:31

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter

I solved my problem with this link:

http://stackoverflow.com/questions/9045807/cant-link-to-fftw-library-using-visua
l-c-express-on-windows-64-bit

I hope it could be helpful for the others.

Cheers

Original comment by [email protected] on 12 Sep 2013 at 8:13

GoogleCodeExporter avatar Mar 14 '15 02:03 GoogleCodeExporter