Compiler un programme avec les librairies de X Window
Les includes
Pour utiliser la plupart des fonctions de la librairie, il faut inclure les fichiers suivants :
#include <X11/Xlib.h> : contient la déclaration de la plupart des structures et fonctions
#include <X11/Xutil.h> : contient la déclaration de constantes utilisées par la librairie
#include <X11/keysym.h> : définition des noms symboliques des touches du clavier, utile uniquement si vous utilisez le clavier.
#include <X11/Xresource.h> à inclure pour les fonctions utilisant le gestionnaire de ressources
Il y a encore d'autres includes, mais ceci sont les plus importantes...
La compilation
La compilation se fera bien évidemment via gcc.
Dans la plupart des cas, tout est paramétré comme il faut (si vous avez demandé une installation pour le développement).
En principe, vous n'aurez donc qu'à indiquer l'utilisation des librairies X11.
Ce qui donne comme commande: gcc nom_fichier.c -o nom_fichier -lX11
Il peut arriver suivant votre installation que cette librairie ne soit pas accéssible dans les répertoires de recherche du compilateur.
Si vous êtes administrateur de la machine, il suffira alors de créer un lien nommé X11 vers le répertoire où se trouve les librairies.
Une autre solution pouvant être l'utilisation du paramétres -L dans le compilateur pour lui indiquer l'emplacement des librairies. La même remarque sera faite concernant les includes. Il faudra alors utiliser le paramètre -I.
Pour plus de détails concernant ces paramètres, consultez le chapitre sur le compilateur gcc.
Par exemple, j'ai trouvé le répertoire de développement X Window sur un AIX à cet emplacement: /usr/lpp/X11.
Je peux donc créer le batch contenant la ligne suivante:
gcc $1.c -o $1 -I/usr/lpp/X11/include -L/usr/lpp/X11/lib -lX11
X Window
est actuellement dans sa version 11 release 6. Le répertoire contenant
les includes ou les librairies pourra alors se nommer X11R6 et non X11.
Le répertoire normalement utilisé devrait être /usr/X11R6/
Sur certains
systèmes Unix, il faudra peut-être ajouter -lsocket...
Il est bien
sûr conseillé d'utiliser un makefile
pour vos programmes...