martes, 4 de enero de 2011

GSL + Code::Blocks... Instalación + Configuración

Buenas, buenas, buenas....
En esta ocasión requiero programar una aplicación que utiliza algunas operaciones matriciales y generación de números aleatorios. No deseo aventarme una librería completa programando esto, así que buscando diferentes opciones, halle la prometedora "GNU Scientific Library":
Además necesito utilizar un IDE para desarrollar la aplicación, por lo que de paso, describo como configurar el Code::Blocks para correr nuestras creaciones sobre Ubuntu 10.10.
Es necesario descargar la librería de synaptic, por lo que es necesario ir a Sistema>Administración>Gestor de paquetes Synaptic desde donde se instalan los paquetes: gsl-bin, gsl-doc-pdf, libgsl0-dbglibgsl0-dev y libgsl0ldbl.
Una vez instalada nuestra librería procedemos a instalar el entorno de desarrollo Code::Blocks, para esto vamos nuevamente a Sistema>Administración>Gestor de paquetes Synaptic e instalamos el paquete codeblocks.

Para configurar el entorno de desarrollo Code::Blocks y poder ejecutar nuestras aplicaciones con la libreria GSL, los pasos son:
  • Añadir ruta de headers y librerías: Hallar la ruta de los Headers y de las librerias (*.a, *.lib, *.so, etc.) almacenadas en nuestro Sistema Operativo. Para mi caso en Ubuntu 10.10 la ruta es /usr/include y /usr/lib, respectivamente. Añadir estas rutas en las opciones Setting>Compiler_and_debugger>Search_Directory>CompilerSetting>Compiler_and_debugger>Search_Directory>Linker, respectivamente.
  • Especificar al linker las librerías que el programa utilizará: En la instalación realizada hasta el momento se provee una adecuada implementación de CBLAS. Para añadir esto basta agregar en la opción Proyect>Build_Options>linker_settings>link_libraries las librerias libgsl.a, libgslcblas.a y libm.a que se localizan en el directorio /usr/lib
Para un mejor desempeño una optimizada libreria de CBLAS debería ser utilizada. El paquete ATLAS provee una portable librería BLAS de alto rendimiento con interface CBLAS.
Para instalar el paquete ATLAS acudimos a Sistema>Administración>Gestor de paquetes Synaptic donde se instalé los paquetes libatlas-base-dev, libatlas3gf-base, libatlas-dev y libatlas-doc.
Con este nuevo cambio el linker a las librerias que el programa utilizará ahora son: libgsl.a, libcblas.a,  libatlas.so y libm.a .

En la página oficial del proyecto GSL puede encontrarse un completo manual de referencia. El código utilizado para probar el correcto funcionamiento de la librería y configuración de Code::Blocks es una modificación del primer ejemplo de este manual:

#include <stdio.h>
#include <gsl/gsl_sf_bessel.h>

int main (void)
{
  double x = 5.0;
  printf("Hola mundo\n");
  double y = gsl_sf_bessel_J0 (x);
  printf ("J0(%g) = %.18e\n", x, y);
  return 0;
}

Adjunto un vídeo que muestra los pasos para la configuración de Code::Blocks, así como una corrida del código ejemplo:
Saludos
faith4of9the5heart

1 comentario:

  1. No se entiende absolutamente nada. Y en tu video, ya esta hecha la configuración. Si podrías corregir esa parte sería de gran ayuda. Saludos.

    ResponderEliminar