[Tech] Compilare un helloworld con le GTK

piozzo piozzo@alice.it
Gio 25 Gen 2007 22:37:38 CET


Grazie intanto per la risposta :)

Hai ragione, nel comando che ho postato avevo passato le gtk+-1.2, ma 
avevo già provato anche con gtk+-2.0.
Comunque, incuriosito dal comportamento di pkg-config, ho provato a dare 
da shell:

$ pkg-config --cflags gtk+-2.0
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found

Facendo una piccola ricerca sul mio fs ho trovato il file gtk-2.0.pc 
nella directory /usr/local/lib/pkgconfig.
Quindi, seguendo il consiglio, ho creato la varibile di ambiente in 
questo modo:

$ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

E infatti adesso, dando il comando di prima ottengo:

$ pkg-config --cflags gtk+-2.0
-I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include 
-I/usr/local/include/atk-1.0 -I/usr/local/include/pango-1.0 
-I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include 
-I/usr/include/cairo

Quindi teoricamente ora lui sa dove andare a pescare i file che cerca... 
ma invece:

$ gcc -Wall -g helloworld.c -o helloworld 'pkg-config --cflags gtk+-2.0' 
'pkg-config --libs gtk+-2.0'
*gcc: pkg-config --cflags gtk+-2.0: No such file or directory*
gcc: pkg-config --libs gtk+-2.0: No such file or directory
In file included from /usr/include/gdk/gdkcairo.h:23,
                 from /usr/include/gdk/gdk.h:30,
                 from /usr/include/gtk/gtk.h:31,
                 from helloworld.c:1:
/usr/include/gdk/gdkcolor.h:30:19: error: cairo.h: No such file or directory
In file included from /usr/include/gdk/gdkcolor.h:31,
                 from /usr/include/gdk/gdkcairo.h:23,
                 from /usr/include/gdk/gdk.h:30,
                 from /usr/include/gtk/gtk.h:31,
                 from helloworld.c:1:
/usr/include/gdk/gdktypes.h:32:18: error: glib.h: No such file or directory
/usr/include/gdk/gdktypes.h:33:25: error: pango/pango.h: No such file or 
directory

Come mai secondo voi?? Io intanto continuo a googleggiare...

Grazie
Francesco



Christopher R. Gabriel wrote:
> non fornisci i corretti CFLAGS. La linea corretta e' qualcosa tipo:
>
> gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags gtk+-2.0`
> `pkg-config --libs gtk+-2.0-`
>
> Occhio agli apici giusti (backtick) e al fatto che alla prima esecuzione
> di pkg-config non stai dicendo quale e' la libreria di cui richiedi i
> cflags.
>
> Ciao,
>
> C.



Maggiori informazioni sulla lista flug-tech