miércoles, 9 de abril de 2008

Instalar GTK+

GTK+ es una librería escrita en C para la construcción de interficies gráficas con la peculiaridad que es multiplataforma, esto es, que con cambios mínimos es posible portar un programa de Windows a Linux (y viceversa). Al menos en lo que respecta a la interficie de usuario.


Otro aspecto que llama la atención es que es completamente libre (a diferencia de QT) y lleva bastante tiempo en el horno por lo que es de esperar que exista una gran comunidad detrás de todo esto.

Sin embargo hace poco tuve la necesidad de configurar mi compilador C para empezar a usar esta librería y me las vi canutas. Las peculiaridades de la libreria, (que requiere de bastantes librerias de terceros) dificultan la instalación para personas poco experimentadas como yo en todo lo que se salga de ANSI C. Por ello quiero recopilar aquí y en castellano los pasos que he realizado para poder configurar correctamente esta libreria.

Descargando los archivos
Lo primero que hace falta es disponer del propio GTK+.
GTK+ en sí es todo un pack de librerias. Todo lo necesario podemos encontrarlo en la sección downloads de su pagina oficial:
http://www.gtk.org/download-windows.html
Descarga los siguientes paquetes de desarrollo (Dev y Bin)

También nos hará falta el pkg-config, así que también para la saca.
  • atk-1.20.0.zip
  • atk-dev-1.20.0.zip
  • cairo-1.4.10.zip
  • cairo-dev-1.4.10.zip
  • gettext-0.14.5.zip
  • gettext-dev-0.14.5.zip
  • glib-2.14.2.zip
  • glib-dev-2.14.2.zip
  • gtk+-2.12.1.zip
  • gtk+-dev-2.12.1.zip
  • jpeg-6b-4-bin.zip
  • jpeg-6b-4-lib.zip
  • libglade-2.4.0-bin.zip
  • libglade-2.4.0-dev.zip
  • libiconv-1.9.1.bin.woe32.zip
  • libpng-1.2.8-bin.zip
  • libpng-1.2.8-lib.zip
  • libxml2-dev-2.6.27.zip
  • pango-1.18.3.zip
  • pango-dev-1.18.3.zip
  • pkg-config-0.20.zip
  • tiff-3.8.2-1-bin.zip
  • tiff-3.8.2-1-lib.zip
  • zlib123-dll.zip
Configurar el sistema
Creamos un directorio nuevo donde queramos y le damos un nombre (yo le he llamado libs). Ahí descomprimimos todos los paquetes que nos hemos descargado.

Ahora viene un paso importante, si vamos a usar el compilador gcc o MinGW debemos renombrar el fichero lib/zdll.lib a lib/libzdll.a.

Una vez descomprimidos todos los ficheros nos quedará una estructura de directorios tal que a
sí:
  • bin
  • include
  • lib
  • make
  • manifest
  • share
Bien, pues la ruta hacia el directorio bin debemos añadirla al PATH de Windows (¿como?)
Tambien deberemos crear una nueva variable de entorno llamada PKG_CONFIG_PATH que apunte al directorio "lib\pkgconfig" (debes indicar la ruta completa).

Solo nos queda instalar el runtime de GTK+ para windows, que son las librerias para el sistema operativo: http://downloads.sourceforge.net/.......

Configurar el compilador
En este ejemplo voy a describir como configurar el IDE codeblocks, que aunque la ultima version (8.02 a fecha de escribir esta entrada) trae una plantilla para GTK+, explicaré paso a paso como configurarlo para poder extrapolar facilmente a otros IDE's.
Con esta nueva versión de codeblocks además es más sencillo el proceso pues no me ha dado problemas el uso de pkg-config.

Creamos un nuevo proyecto y seleccionamos la plantilla Win32 GUI, o aplicación de ventana, según la versión.

Copiamos el siguiente código C de prueba al archivo main.cpp.

#include
int main( int argc, char *argv[] )
{

GtkWidget *window;

gtk_init (&argc, &argv);
w
indow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);

gtk_main ();

return 0;
}

A continuación, vamos a definir los directorios:
  • Settings/Compiler and debugger/Search directories/Compiler
    Añadir el directorio /include
  • Settings/Compiler and debugger/Search directories/Linker
    Añadir el directorio /lib
Lo siguiente es indicar donde se encuentra cada libreria. De esto se encarga pkg-config.
Debemos ir al menú
Project/Build Options/Compiler Settings/Other options
Y en el cuadro de texto escribimos:
`pkg-config gtk+-2.0 --cflags`


Y por ultimo, sin movernos de la misma ventana cambiamos de pestaña:
Linker Settings/Other linker options
Aquí escribimos:
`pkg-config gtk+-2.0 --libs`

Y ya por fin tenemos todo el tinglao listo para escribir nuestros programas con GTK+

2 comentarios:

Anónimo dijo...

Oye, son cientos de pasos para usar el GTK ...

Si que es serio el GTK, en fin. Un saludo a todos.

raul dijo...

disculpe me sale el error; pkg-config no such file o directory, que puedo hacer