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

 

Image non trouvée ! 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/

Image non trouvée !Sur certains systèmes Unix, il faudra peut-être ajouter -lsocket...

Image non trouvée !Il est bien sûr conseillé d'utiliser un makefile pour vos programmes...