From: Phil on
Hi, I have been trying to compile a mex file that uses the fftw library (from www.fftw.org) for several weeks now. I have a header file and 3 .dll files which I converted into .lib using lcc_implib.exe. The problem seems to be that the compiler isn't linking to the library files correctly. Here is the error:

-----------------------------------------------
>> mex wavelet.c -LC:\ -llibfftw3-3 -llibfftw3f-3 -llibfftw3l-3 -c
Error wavelet.c: .\fftw3.h: 343 missing identifier
Error wavelet.c: .\fftw3.h: 343 syntax error; found `void' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_dft' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_dft_1d' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_dft_2d' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_dft_3d' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_many_dft' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_guru_dft' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_guru_split_dft' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_guru64_dft' expecting `;'
Error wavelet.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error wavelet.c: .\fftw3.h: 343 syntax error; found `fftw_plan_guru64_split_dft' expecting `;'
Error wavelet.c: .\fftw3.h: 343 too many errors

C:\PROGRA~1\MATLAB\R2009A\BIN\MEX.PL: Error: Compile of 'wavelet.c' failed.

??? Error using ==> mex at 218
Unable to complete successfully.
-----------------------------------------------

I have tried literally everything I can think of and still haven't got anywhere. This is a widely used library (used in matlab's own FFT) so I can't see how it could be a problem with the any of the files provided by the FFTW group. Interestingly, when I try to use loadlibrary with the .dll files I get the following error:

-----------------------------------------------
>> loadlibrary('libfftw3-3.dll','fftw3.h');
Warning: The library name is not a valid name.
The library will be named "libfftw30x2D3".
In loadlibrary at 171
Warning: Warnings messages were produced while parsing. Check the functions you
intend to use for correctness. Warning text can be viewed using:
[notfound,warnings]=loadlibrary(...)
> In loadlibrary at 394
Warning: The function 'fftwf_execute' was not found in the library
> In loadlibrary at 455
Warning: The function 'fftwf_plan_dft' was not found in the library
> In loadlibrary at 455
Warning: The function 'fftwf_plan_dft_1d' was not found in the library
....
-----------------------------------------------

and so it goes on, unable to find any of the functions in the library.

I have wondered if this is just an isolated problem with the lcc compiler. I don't have visual studio on my PC so can't check to see if this is true. But if anyone has another idea of what is causing these errors then I'd be glad to hear it. Thanks!
From: Rune Allnor on
On 29 Jan, 12:45, "Phil " <wa...(a)hotmail.com> wrote:
> Hi, I have been trying to compile a mex file that uses the fftw library (fromwww.fftw.org) for several weeks now. I have a header file and 3 .dll files which I converted into .lib using lcc_implib.exe. The problem seems to be that the compiler isn't linking to the library files correctly. Here is the error:
....
> I have wondered if this is just an isolated problem with the lcc compiler..

It might very well be. LCC is a minimum functionality that
comes with matlab, and presumably is the same that is shipped
with the Linux and MacOS versions of matlab. No reason to
expect that it would be able to handle OS-specific stuff
like linking with libraries very well. Or at all.

There are some free (express) editions of VS out. Apparently,
they are able to both function with matlab and do what you
need done. You might want to check them out.

Rune
From: Phil on
Rune Allnor <allnor(a)tele.ntnu.no> wrote in message <807046a4-27ca-4a37-ae1f-aea96f4beac7(a)a32g2000yqm.googlegroups.com>...
> On 29 Jan, 12:45, "Phil " <wa...(a)hotmail.com> wrote:
> > Hi, I have been trying to compile a mex file that uses the fftw library (fromwww.fftw.org) for several weeks now. I have a header file and 3 .dll files which I converted into .lib using lcc_implib.exe. The problem seems to be that the compiler isn't linking to the library files correctly. Here is the error:
> ...
> > I have wondered if this is just an isolated problem with the lcc compiler.
>
> It might very well be. LCC is a minimum functionality that
> comes with matlab, and presumably is the same that is shipped
> with the Linux and MacOS versions of matlab. No reason to
> expect that it would be able to handle OS-specific stuff
> like linking with libraries very well. Or at all.
>
> There are some free (express) editions of VS out. Apparently,
> they are able to both function with matlab and do what you
> need done. You might want to check them out.
>
> Rune

Okay, thanks. I'll try that.
From: kk aKI on
"Phil " <waofy(a)hotmail.com> wrote in message <hjupc7$h2e$1(a)fred.mathworks.com>...
> Rune Allnor <allnor(a)tele.ntnu.no> wrote in message <807046a4-27ca-4a37-ae1f-aea96f4beac7(a)a32g2000yqm.googlegroups.com>...
> > On 29 Jan, 12:45, "Phil " <wa...(a)hotmail.com> wrote:
> > > Hi, I have been trying to compile a mex file that uses the fftw library (fromwww.fftw.org) for several weeks now. I have a header file and 3 .dll files which I converted into .lib using lcc_implib.exe. The problem seems to be that the compiler isn't linking to the library files correctly. Here is the error:
> > ...
> > > I have wondered if this is just an isolated problem with the lcc compiler.
> >
> > It might very well be. LCC is a minimum functionality that
> > comes with matlab, and presumably is the same that is shipped
> > with the Linux and MacOS versions of matlab. No reason to
> > expect that it would be able to handle OS-specific stuff
> > like linking with libraries very well. Or at all.
> >
> > There are some free (express) editions of VS out. Apparently,
> > they are able to both function with matlab and do what you
> > need done. You might want to check them out.
> >
> > Rune
>
> Okay, thanks. I'll try that.


Can you give detail step by step how to compile FFTW libray in matlab on windows. I am not getting enough guidance for this cause so looking forward for your help

Thanks

KK
From: kk aKI on
"kk aKI" <akikumar1983(a)gmail.com> wrote in message <hkaoin$lbn$1(a)fred.mathworks.com>...
> "Phil " <waofy(a)hotmail.com> wrote in message <hjupc7$h2e$1(a)fred.mathworks.com>...
> > Rune Allnor <allnor(a)tele.ntnu.no> wrote in message <807046a4-27ca-4a37-ae1f-aea96f4beac7(a)a32g2000yqm.googlegroups.com>...
> > > On 29 Jan, 12:45, "Phil " <wa...(a)hotmail.com> wrote:
> > > > Hi, I have been trying to compile a mex file that uses the fftw library (fromwww.fftw.org) for several weeks now. I have a header file and 3 .dll files which I converted into .lib using lcc_implib.exe. The problem seems to be that the compiler isn't linking to the library files correctly. Here is the error:
> > > ...
> > > > I have wondered if this is just an isolated problem with the lcc compiler.
> > >
> > > It might very well be. LCC is a minimum functionality that
> > > comes with matlab, and presumably is the same that is shipped
> > > with the Linux and MacOS versions of matlab. No reason to
> > > expect that it would be able to handle OS-specific stuff
> > > like linking with libraries very well. Or at all.
> > >
> > > There are some free (express) editions of VS out. Apparently,
> > > they are able to both function with matlab and do what you
> > > need done. You might want to check them out.
> > >
> > > Rune
> >
> > Okay, thanks. I'll try that.
>
>
> Can you give detail step by step how to compile FFTW libray in matlab on windows. I am not getting enough guidance for this cause so looking forward for your help
>
> Thanks
>
> KK



Although I have copied all the files from FFTW Folder to my matlab directory still i am getting this error

Error nfftmex.c: .\fftw3.h: 343 missing identifier
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `void' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `fftw_plan_dft' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `fftw_plan_dft_1d' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `fftw_plan_dft_2d' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `fftw_plan_dft_3d' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `fftw_plan_many_dft' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `fftw_plan_guru_dft' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `fftw_plan_guru_split_dft' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 syntax error; found `fftw_plan_guru64_dft' expecting `;'
Error nfftmex.c: .\fftw3.h: 343 redeclaration of `fftw_plan' previously declared at .\fftw3.h 343
Error nfftmex.c: .\fftw3.h: 343 too many errors

lOOKING FOR SOME HELP