Tiré de GTK+ Reference Manual
acryline 2007 Boosteur de petits projets

Compiler les Applications GTK+

Compiler les Applications GTK+ — Comment compiler votre application GTK+

Compiler les Aplications GTK+ sous UNIX

Pour compiler une application GTK+, vous avez beoin de dire au compilateur où trouver les fichiers header de GTK+ et les bibliothèques. Ceci se fait avec l'utilitaire pkg-config .

La session shell interactive qui suit démontre comment pkg-config est utilisé ( les sorties réelles sur votre système peuvent être défférentes).

$ pkg-config --cflags gtk+-2.0
-I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/X11R6/include -I/usr/include/freetype2 -I/usr/include/atk-1.0 $ pkg-config --libs gtk+-2.0
-L/usr/lib -L/usr/X11R6/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -lXi -lgdk_pixbuf-2.0 -lm -lpangox -lpangoxft -lXft -lXrender -lXext -lX11 -lfreetype -lpango -latk -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0

La façon la plus simple de compiler un programme est  d'employer le dispositif de « backticks » du shell. Si vous placez une commande dans le backticks (pas de simples guillemets) alors ces données seront substituées dans le ligne de commande avant l'exécution. Ainsi, pour compiler un Hello Word avec GTK+, vous devez entrer ceci :

$ cc `pkg-config --cflags --libs gtk+-2.0` hello.c -o hello

Pour compiler un programme de GTK+ pour le framebuffer, employez le nom du paquet « gtk+-linux-fb-2.0 » au lieu de « gtk+-2.0 » :
 
$ cc `pkg-config --cflags --libs gtk+-linux-fb-2.0` hello.c -o hello

Si vous voulez vous assurer que votre programme n'utilise pas de fonctions incompatibles, vous pouvez définir le préprocesseur GTK_DISABLE_DEPRECATED en employant l'option de ligne de commande -DGTK_DISABLE_DEPRECATED=1. Il y a des symboles semblables GDK_DISABLE_DEPRECATED, GDK_PIXBUF_DISABLE_DEPRECATED et G_DISABLE_DEPRECATED pour GDK, GdkPixbuf et GLib.

Si vous voulz vous assurer que votre programme n'utilise pas de fonction qui pourrait être problématique dans une configuration multihead , vous pouvez définir le préprocesseur GDK_MULTIHEAD_SAFE en utilisant l'option de ligne de commande  -DGTK_MULTIHEAD_SAFE=1.