Después de haber instalado GTK+, hay un par de cosas que pueden ayudarte a empezar a desarrollar aplicaciones con él. Está el Tutorial GTK+ http://www.gtk.org/tutorial/, el cual está en desarrollo. Esto te introducirá a la escritura de aplicaciones utilizando C.
El Tutorial no contiene (todavía) información en todos los widgets que existen en GTK+. Para código de ejemplo en como utilizar lo básico de todos los widgets GTK+, debes ver el archivo gtk/testgtk.c (y archivos fuentes asociados) dentro de la distribución. Revisar la distribución te dará una buena base sobre que pueden hacer los widgets.
Ya que eres bueno codificando, no lidiaremos con errores en tiempo de compilación :)
La línea de comando clásica para compilar un programa basado en GTK+ es
gcc -o myprog [c files] `gtk-config --cflags --libs`
Debes darte cuenta del carácter de comilla hacia atrás que es utilizado en esta línea de comando. Un error común cuando inicias un desarrollo basado en GTK+, es utilizar comillas en lugar de comillas hacia atrás. Si lo haces, el compilador se quejará sobre un archivo desconocido llamado gtk-config --cflags --libs. El texto en comillas hacia atrás es una instrucción a tu procesador de línea de comando para substituir la salida de la ejecución de este texto en la línea de comando.
La línea de comando de arriba se asegura de:
se utilizarán las opciones correctas para el compilador C para compilar el programa (incluyendo la lista completa de encabezados C)
tu programa será enlazado con las librerías necesarias.
Este es un archivo make de ejemplo que compila un programa basado en GTK+:
# archivo make para aplicación básica GTK+ SOURCES = myprg.c foo.c bar.c OBJS = ${SOURCES:.c=.o} CFLAGS = `gtk-config --cflags` LDADD = `gtk-config --libs` CC = gcc PACKAGE = myprg all : ${OBJS} ${CC} -o ${PACKAGE} ${OBJS} ${LDADD} .c.o: ${CC} ${CFLAGS} -c $< # fin del archivo |
Para más información sobre la utilidad make, debes leer la página man o la página info relevante.
La construcción de comillas hacia atrás parece no ser aceptada por algunas utilidades make viejas. Si utilizas alguna de estas, el proceso make probablemente fallará. Para poder tener la sintaxis de comillas hacia atrás funcionando, debes utilizar la utilidad GNU make ( consíguela en el servidor ftp de GNU en ftp://ftp.gnu.org/).
Para utilizar autoconf/automake, primero debes instalar los paquetes relevantes. Estos son:
Encontrarás estos paquetes en el servidor principal de ftp de GNU (ftp://ftp.gnu.org/) o en cualquier espejo GNU.
Para poder utilizar el poderoso esquema autoconf/automake, debes crear un configure.in que puede lucir como:
dnl Procesa este archivo con autoconf para producir un configure script. dnl configure.in para un programa basado en GTK+ AC_INIT(myprg.c)dnl AM_INIT_AUTOMAKE(mypkgname,0.0.1)dnl AM_CONFIG_HEADER(config.h)dnl dnl Chequea programas AC_PROG_CC dnl chequea el compilador c dnl deberías agregar CFLAGS="" aquí, porque es fijado a -g por PROG_CC dnl Chequea librerías. AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(mypkgname 0.1 needs GTK))dnl AC_OUTPUT( Makefile )dnl |
Debes agregar un archivo Makefile.am:
bin_PROGRAMS = myprg myprg_SOURCES = myprg.c foo.c bar.c INCLUDES = @GTK_CFLAGS@ LDADD = @GTK_LIBS@ CLEANFILES = *~ DISTCLEANFILES = .deps/*.P |
Si tu proyecto contiene más de un subdirectorio, deberás crear un Makefile.am en cada directorio además de un Makefile.am maestro que lucirá como:
SUBDIRS = midir1 midir2 midir3 |
entonces, para utilizar estos, simplemente teclea lo siguientes comandos:
aclocal autoheader autoconf automake --add-missing --include-deps --foreign |
Para más información, deberías revisar la documentación de autoconf y automake (los archivos info incluidos son bastante fáciles de entender, y hay una gran cantidad de recursos en el web que lidian con autoconf y automake).
De Federico Mena Quintero:
"X no esta trancado. Lo más seguro es que estás llegando a un punto de parada dentro de un callback llamado desde un lugar en Gtk que tiene el ratón agarrado."
"Corre tu programa con la opción --sync; hará más fácil la eliminación de errores. También, puede que quieras utilizar la consola para correr el debugger, y simplemente dejes el programa corriendo en otra consola con el servidor X."
Eric Mouw tiene otra solución:
"Una terminal vieja conectada a un puerto serie sin usar, también es grandioso para eliminar errores en programas X. Terminales viejas vt100/vt220 son baratísimas pero un poco difíciles de conseguir (aquí en los Países Bajos, YMMV[1])"
[1] | Nota del traductor: YMMV == Tu Millaje Puede Variar |