>> Verny Mata escribi�:

 > gcc clock.c
 > 
 > me dice "no se encontr� en archivo o el directorio gtk.h"

 Los archivos .h se utilizan en C (y familia) para "declarar" las
 funciones que se pueden/quieren usar.  Esos archivos se llaman
 "encabezados" y en ingl�s "headers", por eso la "h".

 El c�digo que *define* una funci�n se pone normalmente en un archivo .c
 que se compila para producir un "objeto" (.o).  De varios objetos se
 puede hacer un programa (el proceso se llama "ligar objetos" o "link"
 en ingl�s).

 Para organizar mejor las cosas y ahorrar tiempo de compilaci�n los
 objetos compilados se pueden almacenar en "archivos" (.a) o bibliotecas
 din�micas (.so).  Los archivos se ligan al compilar el programa.  Las
 bibliotecas din�micas se ligan al ejecutarlo.  El programa que liga las
 bibliotecas din�micas se llama "dynamic linker".

 Los "headers" del sistema se almacenan en /usr/include y sus
 subdirectorios.  Las bibliotecas del sistema se almacenan en /usr/lib.
 El dynamic linker mantiene una lista de las bibliotecas instaladas (por
 razones de rendimiento -- no es necesario).  Esta lista se actualiza
 con el comando "ldconfig".

 Al compilar un programa las bibliotecas que se desean utilizar se
 indican utilizando un par�metro de la forma -lerty (en el caso de
 gcc).  El compilador ve el par�metro -lerty y buscar un archivo
 llamado liberty.so o liberty.a (lib + lo que venga despu�s de -l +
 ".so" o ".a").

 Todo esto para decir que las bibliotecas no tienen, estrictamente, nada
 que ver con los headers.

 Lo que hace falta es un archivo gtk.h en /usr/include o un directorio
 similar.  En el caso particular de GTK+, hay un programa llamado
 "gtk-config" que se usa as�:

 $ cc -c `gtk-config --cflags` mi_programa.c
 $ cc -o mi_programa mi_programa.o `gtk-config --libs`

 Si uno tiene un makefile (GNU Make), uno puede escribir algo as�:

 GTK_CFLAGS := $(shell gtk-config --cflags)
 GTK_LIBS := $(shell gtk-config --libs)

 [...]

 mi_programa: mi_programa.o
        $(CC) -o $@ $^ $(GTK_LIBS)

 mi_programa: mi_programa.c
        $(CC) -c $^ $(GTK_CFLAGS)

 y con "make mi_programa" se compila el programa.

 Con gtk-config correctamente instalado no es necesario preocuparse por
 d�nde est�n los headers de GTK+ (de hecho cualquier otra forma de
 compilar un programa de GTK+ est� intr�nsecamente mal).

 En Debian gtk-config viene con el paquete libgtk1.2-dev (o similares
 dependiendo de la versi�n de GTK+ que se quiera usar).

 Si no se est�n usando paquetes, bueno... DIY...

 > Ya tengo instaladas las librerias, pruebo con ldconfig y nada,
 > ldconfig -v no muestra glib.

 No tiene nada que ver con el problema indicado al inicio, pero si
 ldconfig no muestra libglib y libglib est� correctamente instalado en
 un directorio del sistema, probablemente este directorio no est�
 inclu�do en /etc/ld.so.conf

 > tengo link de las librerias en /usr/lib

 Puede quitarlo.

 > Es un problema de algun demonio?  Me falta algo?

 No, compilar programas no tiene nada que ver con daemons en el caso
 com�n.

 Lo que falta es gtk-config.

 PS: Alexis, es tu culpa.

-- 
Marcelo


-- 
�Desea desuscribirse?  Escriba a [EMAIL PROTECTED] con el tema
'unsubscribe'.  M�s informaci�n: http://www.linux.or.cr/listas

Responder a