Undefined constructor / destructor - how to verify and / or fix it.

Could someone help me to translate this error to plain English?

I have added, again , PlainFFT.h and PlainFFT.cpp files to IDE libraries and #include(d) full path to PlainFFT.h in my sketch.
I can verify the temp version of the header file , so I know I am accessing the correct one and not some stray.

#include "C:\Program Files\Arduino\libraries\PlainFFT\PlainFFT.h"
PlainFFT FFT = PlainFFT();

Now I am getting this error and it leads me to believe that the .cpp file is not being compiled.
I have not seen it accessed in compiler verbose output.

Am I correct and how can I make sure that the PlainFFT.cpp file is included in compilation?
I am missing some reference / path.

I have changed the #include PlainFFT.h to full path in PlainFFT.cpp also to make sure same header file is referenced.
#include “C:\Program Files\Arduino\libraries\PlainFFT\PlainFFT.h”

Here is the compiler error:

Audio_Loopback_6.cpp.o: In function __static_initialization_and_destruction_0': C:\Program Files\Arduino/Audio_Loopback_6.ino:27: undefined reference to PlainFFT::PlainFFT()’
C:\Program Files\Arduino/Audio_Loopback_6.ino:27: undefined reference to `PlainFFT::~PlainFFT()’

Addendum
Found “workaround” by adding the .cpp file as “new tab” .
It compiles but still gives no indication of progress during compilation.
If I add same .cpp file twice as “new tab” the errors do identify the file in question - basically multiple definitions.

PlainFFT FFT = PlainFFT();

That is NOT how to create an instance of the class.

PlainFFT FFT;

Will call the constructor properly and create an instance of the class.

PaulS: PlainFFT FFT = PlainFFT();

That is NOT how to create an instance of the class.

This is also a valid way of declaring an instance, its just a bit of an overkill when there is nothing between the brackets.

@OP, make sure you change the WProgram.h to Arduino.h, also I would not use full paths, if you have things in the right spot they should be found. What IDE are you using? 1.0.5?

pYro_65:

PaulS: PlainFFT FFT = PlainFFT();

That is NOT how to create an instance of the class.

This is also a valid way of declaring an instance, its just a bit of an overkill when there is nothing between the brackets.

@OP, make sure you change the WProgram.h to Arduino.h, also I would not use full paths, if you have things in the right spot they should be found. What IDE are you using? 1.0.5?

I am using 1.0.5 and I did find out the hard way not include WProgram. As far as getting "things in right spot" , the full path is ONE way to eliminate the inconsistency in downloading zip files of different vintage. Got tired to rely on OS and IDE to do that, it is much safer for me go full path. As soon as I get current project finished I'll try the new release.

Still would like to know why the .cpp did not get compiled. i'll do some search how the "new tab" ( stupid name ) gets complied.

Thanks for your help, appreciate it. Cheers Vaclav