Newsgroup: it.comp.os.linux.development
Titolo: Primo programmino in GTK, ma.... Serie di errori...

Ho comprato un libro sullo sviluppo delle applicazioni in Linux con GTK+ 
di Havoc Pennington e ho scritto il seguente programma di prova che ho 
chiamato hello.c.
#include <gtk/gtk.h>
#include <stdio.h>
void button_clicked_callback( GtkWidget *button, void *user_data )
{
	g_print( "Il pulsante è stato premuto.!\n" );
}
int main( int argc, char **argv)
{
	GtkWidget *window;
	GtkWidget *button;
	gtk_init( &argc, &argv );
	window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
	button = gtk_button_new_with_mnemonic( "_Ciao, Mondo!" );
	g_signal_connect( button, "clicked", G_CALLBAC( 
button_clicked_callback), NULL );
	gtk_container_add( GTK_CONTAINER( window), button );
	gtk_widget_show_all( window );
	gtk_main();
	return 0 ;
}
Ho compilato il tutto con il comando:
# cc -Wall -g -O2 $(pkg-config -cflags -libs gtk+-2.0) hello.c -o hello
Come primo errore il compilatore mi dice:
-cflags: unknown option
In teoria il programma doveva compilarsi, ma mi dice che /gtk/gtk.h non 
esiste. Ho fatto una ricerca nel mio PC e ho trovato 
/usr/include/gtk-2.0/gtk/gtk.h e l'ho messo tutta la path completa nel 
include. Quando ho provato a compilare il tutto da capo, il compilatore 
mi dice:
In file included from hello.c:1:
/usr/include/gtk-2.0/gtk/gtk.h:31:21: gtk/gdk.h: No such file o directory
e questo me lo scrive per tutti i file gtk...
Cosa devo fare, dove sbaglio?
Cosa mi manca?
AIUTATEMIIIIIIIIIIIIIIIIIIIIIII
Grazie.
Keres Contorni.

 Cosa devo fare, dove sbaglio?
ln -s /usr/include/gtk-2.0 /usr/include/gtk
-- 
HappyCactus - Linux User #209744 - LFS User #6046 - >>> SMSPM1050 <<<
              YAGF Member Group >>> 
www.google.com
 <<<
Ci sono 10 categorie di persone al mondo: quelle che capiscono
il sistema binario e quelle che non lo capiscono.

e questo me lo scrive per tutti i file gtk...
Il libro è basato sulle GTK 1.2 .
Tu hai installato le 2.0 .
Devi quindi verificare di usare gtk-2.0 se usi le 2.0,
o gtk-1.2 se hai installato e intendi usare la versione + vecchia (ma 
stabile) nei vari path.
Questa funzionalità è stata introdotta poco tempo fa, mentre venivano
sviluppate le future GTK2.0 per permettere la pacifica coesistenza
delle 2 versioni.
Puoi quindi installarle tutte e due senza problemi.
Okkio che il libro è un po stagionato, alcune cose li indicate sono
considerate "deprecated"nelle 2.0.
Fai cmq sempre riferimento alla documentazione ufficiale che trovi nei
sorgenti delle librerie
Ciao
F.

 Keres Contorni.

 # cc -Wall -g -O2 $(pkg-config -cflags -libs gtk+-2.0) hello.c -o hello
Occhio alla sintassi di pkg-config:
	pkg-config --cflags --libs gtk+-2.0
Ciao,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.ods.org/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 ln -s /usr/include/gtk-2.0 /usr/include/gtk
NO!
Se hai entrambe le librerie *non* si deve fare.


 Se hai entrambe le librerie *non* si deve fare.
Hai ragione, mi sembrava la soluzione piu' semplice, ma evidentemente,
quella piu' disastrosa :)
Ok, torno al mio demone senza interfaccia grafica...


 Okay, okay: sono un "sofistego". :-)
E` la stessa cosa, quando passato come argomento di una funzione l'array
decade a puntatore al primo elemento.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Io mi ricordo sempre il compleanno della mia ragazza:
cade il giorno dopo di quando lei me lo ricorda

 Okay, okay: sono un "sofistego". :-)
È equivalente. Inoltre quando un array viene passato ad una funzione
decade a puntatore al suo primo elemento.

 decade a puntatore al primo elemento.
Lo so, ma mi sembra molto più chiaro, nel contesto della lettura del
sorgente, "char *argv[]" di "char **argv".
Ecco perché ho detto che sono "sofistego"[1]. :-)
+++
[1] Inutilmente complicato.
