viernes, 27 de enero de 2012

Inclusión de FFTW en Visual Studio 2008

Inclusión de FFTW en Visual Studio 2008




  • Si abrimos el “readme” para Windows en su parte central vemos:
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

Estos tres comandos hay que ejecutarlos en la “consola” de Visual Studio, hay que abrir el programa, y sin abrir ningún proyecto:  Herramientas > Visual Studio 2008 Command Prompt. Cómo se puede ver en la siguiente imágen.



  • Una vez en la consola, hay que dirigirse con el comando cd al directorio dónde se encuentra el       fichero  descargado y descomprimido anteriormente. Una vez allí ejecutar por consola las 3 líneas especificadas en la ayuda:

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

          De esta manera se crean los archivos “.lib”.



  •        Copiar la carpeta dónde se han creado las librerías en la carpeta del proyecto en el que queremos utilizar la fftw y denominarla "FFTW_LIBS".


  •     Inclusión de las librerías en el proyecto. En : “ Propiedades del Proyecto > Propiedades de configuración  > Vinculador  > Entrada  > Dependencias adicionales” incluimos los tres nuevos .lib:

libfftw3-3.lib

libfftw3f-3.lib
libfftw3l-3.lib
  • Inclusión de la ruta  dónde se encuentra la librería:

a.       Propiedades del proyecto > Propiedades de configuración > Vinculador > General >  Directorio de librerías adicionales”. En este sitio escribimos: “./FFTW_LIBS”.

b.      Propiedades del proyecto > Propiedades de configuración > C/C++ > General >  Directorio de inclusión adicionales”. En este sitio escribimos: “./FFTW_LIBS

  • Inclusión de la ruta dónde se encuentra el  archivo con extensión “.dll”. Buscamos:  “ Propiedades del proyecto > Propiedades de configuración  > Depuración  > Entorno ". En la variable entorno se ha de especificar la ruta dónde se sitúa el “libfftw3-3.dll”, escribimos : “PATH = .\FFTW_LIBS



Con estos pasos, al incluir “include fftw3.h” en la cabecera del archivo .h principal del proyecto no da ningún tipo de error




4 comentarios:

  1. Respuestas
    1. de bariloche?? quien sos?? sos del CAB??

      Eliminar
    2. Capaz que estamos cerca y me podes dar una mano para cargar la libreria. Gracias

      Eliminar
  2. Hola, creo haber seguido las instrucciones correctamente pero sigo teniendo errores de tipo:

    1>principal.obj : error LNK2019: unresolved external symbol __imp__fftw_free referenced in function _main
    1>principal.obj : error LNK2019: unresolved external symbol __imp__fftw_destroy_plan referenced in function _main
    1>principal.obj : error LNK2019: unresolved external symbol __imp__fftw_execute referenced in function _main
    1>principal.obj : error LNK2019: unresolved external symbol __imp__fftw_plan_dft_r2c_1d referenced in function _main
    1>principal.obj : error LNK2019: unresolved external symbol __imp__fftw_malloc referenced in function _main
    1>C:\Users\Fede\Documents\Visual Studio 2008\Projects\vibraciones\Debug\vibraciones.exe : fatal error LNK1120: 5 unresolved externals
    1>Build log was saved at "file://c:\Users\Fede\Documents\Visual Studio 2008\Projects\vibraciones\vibraciones\Debug\BuildLog.htm"
    1>vibraciones - 6 error(s), 0 warning(s)
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

    Tambien tengo las siguientes dudas:
    -No entendi que archivos pasaste a fftw_libs, todos los del zip mas los .lib??
    -Tampoco no entiendo exactamente como cargar las direcciones o path que marcas al final del tutorial.
    con los errores como esta, mande en las propiedades del project:
    en debbugging: el path DEL ARCHIVO .dll (que lo guarde en la carpeta fftw_libs)
    en linker>general>aditional library dependences: el path de la carpeta fftw_libs
    en c/c++>general>aditional library dependences: el path de la carpeta fftw_libs

    Bueno perdon por hacer el comentario tan largo, es para q se entienda lo mejor posible, ayuda!! muchas gracias

    ResponderEliminar