[Insight-users] Insight-users Digest Questions - Problems Building FFTW From Review
Calvin Lefebvre
calvin.lefebvr7 at gmail.com
Tue Nov 22 00:12:51 EST 2011
Hi Antonio Gómez Barquero,
Just an update. I completed your steps 1-6 and the project built for the
first time but now when I go to debug a window pops up and has the
following message
`The program can't start because libfftw3-3.dll is missing from your
computer. Try reinstalling the program to fix this problem.'
I did not touch libfftw3-3.dll so I am not sure what happened. Did you ever
get this error?
Thanks for your help again,
Calvin
ps Sorry for sending twice but I forgot to include insight-users at itk.org
2011/11/21 Calvin Lefebvre <calvin.lefebvr7 at gmail.com>
> Hi Antonio Gómez Barquero,
>
> Thank you for your help, I really appreciate it. I just had 3 more
> question if you do not mind.
>
> *Question 1*
>
> I understand up until your step 3 but then there is a gap between step 3
> and step 4.
>
> After step 3 I configure ITK with CMake and I set ITK_USE_REVIEW,
> USE_FFTWD and USE_FFTWF to "On" but the problem is CMake can not find
>
> FFTWD_LIB
>
> FFTWD_THREADS_LIB
>
> FFTWF_LIB
>
> FFTWF_THREADS_LIB
> FTTW_INCLUDE_PATH
>
> They are located in FFTW_LIBS so did you have to manually set them to a
> lib? If yes, then which one did you set each of them to?
>
> *Question 2*
>
> Also, another question so in order to use ITK in visual studios I have to
> do the following steps
>
> A.Configure ITK in CMake
> B.Build ITK in visual studios
> C.Configure my project in CMake
> D. Build my project in visual studios
>
> In your steps 4,5,6 you are setting Additional dependencies, Additional
> libs directory and Environment do you do this for both building itk in
> visual studios and building your project in visual studios?
>
> *Question 3*
>
> I just wanted to check if there was a difference in your step 5b and 6?
>
> Thanks again,
>
> Calvin
>
>
> 2011/11/21 Antonio Gómez Barquero <agb1 at alu.upct.es>
>
>> ** **
>>
>> Hi Calvin****
>>
>> ** **
>>
>> I also had the same problem some months ago, and I solved it making some
>> changes in the configuration of ‘Visual Studio 2008’, here I tell you the
>> process:****
>>
>> ** **
>>
>> **1. **Download the file “fftw-3.3dll32.zip from fftw org website (
>> http://www.fftw.org/install/windows.html)****
>>
>> ** **
>>
>> **2. **In order to link to these .dll files from Visual C++, you
>> need to create .lib "import libraries" for them, and can do so with the
>> "lib" command that comes with VC++. In particular, run:****
>>
>> lib /def:libfftw3-3.def****
>>
>> lib /def:libfftw3f-3.def****
>>
>> lib /def:libfftw3l-3.def****
>>
>> ** **
>>
>> In “Tools > Visual Studio 2008 Command Prompt” without opening any
>> project, just Visual. Once you are in the console, you go with the ‘cd’
>> command to the root where the folder is placed and once there you run the
>> three lines above, and then the ‘lib files are created.****
>>
>> ** **
>>
>> **3. **Copy the folder where the libs are created and then copy it
>> inside the project folder where we want to use it and rename the folder to
>> “FFTW_LIBS”. In this folder the necessary files are the ones that have the
>> ‘*.dll’ , ‘*.lib’ and the ‘fftw3.h’.****
>>
>> ** **
>>
>> **4. **Inclusion of the libs in the project: “Project > Properties
>> > Configuration Properties > Linker > Entry > Additional dependencies” and
>> then we include the three new libs files:****
>>
>> ** **
>>
>> libfftw3-3.lib ****
>>
>> libfftw3f-3.lib****
>>
>> libfftw3l-3.lib****
>>
>> ** **
>>
>> **5. **Inclusion of the path where the libs are:****
>>
>> **a. **“Project > Properties > Configuration Properties > Linker >
>> General > Additional libs directory” , and there we write “./FFTW_LIBS”.*
>> ***
>>
>> **b. **“Project > Properties > Configuration Properties >
>> Depuration > Environment” , and there we write “./FFTW_LIBS”.****
>>
>> ** **
>>
>> **6. **Inclusion of the path where the ‘.dll’ file is. In “Project
>> > Properties > Configuration Properties > Depuration > Environment”. In the
>> variable ‘enviroment’ we have to specify where the file ‘libfftw3-3.dll’
>> and we write “PATH = .\FFTW_LIBS”****
>>
>> ** **
>>
>> After all of this steps, you just have to add “ #include fftw3.h” and use
>> the fftw functions!****
>>
>> My visual Studio is in Spanish, so sorry if any of the word is not
>> perfect translated.****
>>
>> ** **
>>
>> Hope it helps!****
>>
>> ** **
>>
>> Antonio Gómez Barquero****
>>
>> ** **
>>
>> ** **
>>
>> ** **
>>
>> ** **
>>
>> *De:* insight-users-bounces at itk.org [mailto:insight-users-bounces at itk.org]
>> *En nombre de *Calvin Lefebvre
>> *Enviado el:* viernes, 18 de noviembre de 2011 19:07
>> *Para:* insight-users at itk.org
>> *Asunto:* [Insight-users] Insight-users Digest Questions - Problems
>> Building FFTW From Review****
>>
>> ** **
>>
>> Hi Insight-users,****
>>
>> ****
>>
>> I am currently trying to use FFTW from the "Review" directory option but
>> I am having a great deal of difficulty and I would appreciate any help.**
>> **
>>
>> ****
>>
>> *Attempt1*****
>>
>> * *****
>>
>> *Step 1*****
>>
>> * *****
>>
>> I download the windows version for FFTW dll files from
>> http://www.fftw.org/install/windows.html and used lib.exe to create the
>> .lib (import libraries). So now I have the following new three lib files:
>> ****
>>
>> ****
>>
>> libfftw3-3.lib****
>>
>> libfftw3f-3.lib****
>>
>> libfftw3l-3.lib****
>>
>> ****
>>
>> *Step 2*****
>>
>> ****
>>
>> I then modified the CMakelist for compiling the ITK by adding ****
>>
>>
>> SET(CMAKE_MODULE_PATH ${ITK_SOURCE_DIR}/CMake)
>> OPTION(USE_FFTWD "Use double precision FFTW if found" ON)
>> OPTION(USE_FFTWF "Use single precision FFTW if found" ON)
>> FIND_PACKAGE( FFTW )
>>
>> IF(USE_FFTWF)
>> LINK_LIBRARIES(${FFTWF_LIB})
>> ENDIF(USE_FFTWF)
>>
>> IF(USE_FFTWD)
>> LINK_LIBRARIES(${FFTWD_LIB})
>> ENDIF(USE_FFTWD)****
>>
>> * *****
>>
>> *Step 3*****
>>
>> ****
>>
>> Next I configure ITK in CMake. I set ITK_USE_REVIEW, USE_FFTWD and
>> USE_FFTWF to "On". I get the following error****
>>
>> ****
>>
>> CMake Error: The following variables are used in this project, but they
>> are set to NOTFOUND.****
>>
>> Please set them or make sure they are set and tested correctly in the
>> CMake files:****
>>
>> FFTWD_LIB (ADVANCED)****
>>
>> linked by target "ITKAlgorithms" in directory
>> C:/Users/clefebvr/Desktop/InsightToolkit-3.20.1/Code/Algorithms****
>>
>> FFTWF_LIB (ADVANCED)****
>>
>> linked by target "ITKAlgorithms" in directory
>> C:/Users/clefebvr/Desktop/InsightToolkit-3.20.1/Code/Algorithms****
>>
>> FFTW_INCLUDE_PATH****
>>
>> ...****
>>
>> ****
>>
>> So, in CMake it mentions that it cannot find FFTWD_LIB,
>> FFTWD_THREADS_LIB, FFTWF_LIB, FFTWF_THREADS_LIB and FTTW_INCLUDE_PATH. So I
>> set the path in CMake as the following****
>>
>> ****
>>
>> FFTWD_LIB, FFTWD_THREADS_LIB to libfftw3-3.lib****
>>
>> FFTWF_LIB, FFTWF_THREADS_LIB to libfftw3f-3.lib****
>>
>> FTTW_INCLUDE_PATH to directory of fftw3.h****
>>
>> ****
>>
>> I configured and generated in CMake without any errors and there was no
>> problem building ITK in visual studios 2008. When I try and build my own
>> project with itkFFTWComplexToComplexImageFilter.h I get I
>> get several errors that are similar to the following****
>>
>> ****
>>
>> itkGaborImageSourceTest.obj : error LNK2019: unresolved external symbol
>> __imp_fftwf_destroy_plan referenced in function "protected: virtual __cdecl
>> itk::FFTWComplexToComplexImageFilter<float,2>::~FFTWComplexToComplexImageFilter<float,2>(void)"
>> (??1?$FFTWComplexToComplexImageFilter at M$01 at itk@@MEAA at XZ)****
>>
>> ****
>>
>> *Attempt 2*****
>>
>> ****
>>
>> I also tried a different modification to the CMakelist file for the ITK
>> configuration by adding ****
>>
>> ****
>>
>> SET(CMAKE_MODULE_PATH ${ITK_SOURCE_DIR}/CMake)****
>>
>> option(USE_FFTWD "Use double precision fftw if found" ON)****
>>
>> option(USE_FFTWF "Use single precision fftw if found" ON)****
>>
>> option(USE_SYSTEM_FFTW "Use an installed version of fftw" OFF)****
>>
>> if (USE_FFTWD OR USE_FFTWF)****
>>
>> if(USE_SYSTEM_FFTW)****
>>
>> find_package( FFTW )****
>>
>> link_directories(${FFTW_LIBDIR})****
>>
>> else(USE_SYSTEM_FFTW)****
>>
>> link_directories(${ITK_DIR}/fftw/lib)****
>>
>> include_directories(${ITK_DIR}/fftw/include)****
>>
>> endif(USE_SYSTEM_FFTW)****
>>
>> endif(USE_FFTWD OR USE_FFTWF)****
>>
>> ****
>>
>> It did not show any FFTWD_LIB, FFTWD_THREADS_LIB, FFTWF_LIB,
>> FFTWF_THREADS_LIB and FTTW_INCLUDE_PATH errors in CMake. Regardless I
>> continued and no errors occurred generating in CMake, and building ITK in
>> visual studio. Again, when I tried to build my project with
>> itkFFTWComplexToComplexImageFilter.h from the Review folder I get several
>> errors that are similar to the following****
>>
>> ****
>>
>> itkGaborImageSourceTest.obj : error LNK2019: unresolved external symbol
>> __imp_fftwf_destroy_plan referenced in function "protected: virtual __cdecl
>> itk::FFTWComplexToComplexImageFilter<float,2>::~FFTWComplexToComplexImageFilter<float,2>(void)"
>> (??1?$FFTWComplexToComplexImageFilter at M$01 at itk@@MEAA at XZ)****
>>
>> ****
>>
>> ****
>>
>> I compiled CMake with the Visual Studios 2008 64 bit option.****
>>
>> ****
>>
>> Thanks for the help,****
>>
>> ****
>>
>> Calvin****
>>
>> ****
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20111121/c5aba416/attachment.htm>
More information about the Insight-users
mailing list