Home > Guide veloci, programmazione > Guida Gtk+ a puntate ( II parte )

Guida Gtk+ a puntate ( II parte )

Bene, continua la guida a puntate. L’ultima volta abbiamo dato uno sguardo agli obiettivi di questa guida, a quale conoscenze bisogna avere prima di iniziare a esplorare il fantastico mondo delle Gtk+  e qual’è la loro storia.

Oggi vedremo invece come si possono installare e come compilare un programma che ne fa uso una volta installate. Questa seconda parte sarà un po’ breve, mi rifarò con la prossima :) ( vedere la fine di quest’articolo per sapere cosa faremo )

Dove le ottengo?
Come le installo?

Su un sistema Debian si sa che apt semplifica il lavoro di installazione, quindi utilizzandolo può bastare un semplicissimo:

1
2
sudo apt-get update
sudo apt-get install libgtk2.0-0 libgtk2.0-dev

Se lo si volesse installare da sorgente invece i passi da seguire sono:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mkdir gtk-install
cd gtk-install
wget http://ftp.gnome.org/pub/gnome/sources/gtk+/2.14/gtk+-2.14.3.tar.bz2
wget http://ftp.gnome.org/pub/gnome/sources/pango/1.20/pango-1.20.5.tar.bz2
wget http://ftp.gnome.org/pub/gnome/sources/glib/2.18/glib-2.18.1.tar.bz2
 
tar -xjf gtk+-2.14.3.tar.bz2
tar -xjf pango-1.20.5.tar.bz2
tar -xjf glib-2.18.1.tar.bz2
 
sudo apt-get update
sudo apt-get install build-essential
 
./pango*/configure && make -C pango* && sudo make install -C pango*
./glib*/configure && make -C glib* && sudo make install -C glib*
./gtk*/configure && make -C gtk* && sudo make install -C gtk*

Se si volesse abilitare il debug, basta passare l’opzione –enable-debug al configure.
Per altre informazioni su come installarle su altre piattaforme rimando alla pagina di gtk.org dove spiega dettagliatamente, in inglese, tutti i passaggi da effettuare e contiene anche al suo interno i vari link per alcuni repository da cui si potranno scaricare gli archivi in diversi formati.
La pagina è: http://www.gtk.org/download.html
Una volta installato potrà essere richiamato tramite l’utily pkg-config che nei capitoli seguenti useremo come una sorta di parametro di GCC, ad esempio:

1
gcc main.c -o programma `pkg-config --cflags --libs gtk+-2.0`

pkg-config ritornerà a gcc le varie librerie da linkare e i vari percorsi in cui trovare i file di header, ad esempio nel mio sistema ho:

1
2
3
4
5
6
7
8
9
hds619@neckers:~$ pkg-config --cflags --libs 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 -I/usr/include/pango-1.0 -I/usr/include/freetype2
-I/usr/include/libpng12 -I/usr/include/pixman-1 -L/usr/local/lib
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0
-lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype
-lz -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0

Fine Seconda Parte :)
Nella prossima costruiremo i primi programmi Gtk+ di esempio per dare uno sguardo generale al toolkit

  1. 28 giugno 2009 a 17:34 | #1

    ciao.
    io uso slackware, ho scaricato dal sito gtk.org le varie dipendenze, ho installato le glib (conviene aggiornare i link visto che sono presenti nuove versioni).
    adesso per installare le gtk digito ./configure dopo un pò mi si presenta questo errore:
    configure: error:
    *** Checks for JPEG2000 loader failed. You can build without it by passing
    *** –without-libjasper to configure

    secondo te quale è il problema ?

  2. 29 giugno 2009 a 21:57 | #2

    Devi appunto installare il pacchetto libjasper che su ubuntu è divisa in “libjasper1″ e “libjasper-dev”, su slackware se non sbaglio è un pacchetto unificato.

  3. Antonino
    10 marzo 2011 a 11:33 | #3

    Ciao ho provato a compilare con “gcc main.c -o helloWord pkg-config –cflags –libs gtk+-2.0″ il codice C della II Parte, ma mi da:

    gcc: pkg-config: Nessun file o directory
    gcc: gtk+-2.0: Nessun file o directory
    cc1: error: unrecognized command line option “-fcflags”
    cc1: error: unrecognized command line option “-flibs”

    Sai per caso aiutarmi?

  4. Antonino
    10 marzo 2011 a 11:38 | #4

    Ho provato anche con “gcc ciao\ Mondo.c -o CiaoMondo ‘pkg-config –cflags –libs gtk+-2.0′ ” e mi da in uscita:

    gcc: pkg-config –cflags –libs gtk+-2.0: Nessun file o directory
    ciao Mondo.c:1:21: error: gtk/gtk.h: Nessun file o directory
    ciao Mondo.c: In function ‘main’:
    ciao Mondo.c:5: error: ‘GtkWidget’ undeclared (first use in this function)
    ciao Mondo.c:5: error: (Each undeclared identifier is reported only once
    ciao Mondo.c:5: error: for each function it appears in.)
    ciao Mondo.c:5: error: ‘window’ undeclared (first use in this function)
    ciao Mondo.c:9: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function)

    che ne dici?

  5. Antonino
    10 marzo 2011 a 11:43 | #5

    Ho risolto con AltGr+’ XD
    Grazie lo stesso mia distrazione

  6. valentino
    4 giugno 2011 a 16:19 | #6

    a me dava lo stesso problema, poi ho provato con la linea

    gcc `pkg-config –cflags –libs gtk+-2.0` programma.c -o programma.exe

    e ha funzionato
    ciao

  1. Nessun trackback ancora...
Custom Avatars For Comments