[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-clients-linux/home/netlogon/clients-linux/.defaut/divers/sources/ -> numlock_active.c (source)

   1  #include <X11/XKBlib.h>
   2  #include <X11/extensions/XKB.h>
   3  #include <X11/keysym.h>
   4  
   5  int main () {
   6      Display *disp = XOpenDisplay(NULL);
   7      if(disp == NULL) return 1;
   8      unsigned int nl_mask = XkbKeysymToModifiers(disp, XK_Num_Lock);
   9      XkbLockModifiers(disp, XkbUseCoreKbd, nl_mask, nl_mask);
  10      XCloseDisplay(disp);
  11      return 0;
  12  }
  13  
  14  /*
  15      Je n'y connais pas grand chose en C. J'ai trouvé des informations ici :
  16      http://www.siteduzero.com/tutoriel-3-31992-compilez-sous-gnu-linux.html
  17  
  18      Paquet à installer pour que la compilation fonctionne : 
  19          libx11-dev
  20          
  21      1) Compilation sans inclure les bibliothèques dynamiques (*.so) dans le binaire :
  22          # Avec « -l X11 », on signale à l'éditeur de liens qu'il pourra utiliser la bibliothèque X11.
  23          gcc -l X11 <file.c> -o <file.exe>
  24          
  25      2) Compilation en incluant les bibliothèques dynamiques (*.so) dans le binaire :
  26          # Avec « -l X11 », on signale à l'éditeur de liens qu'il pourra utiliser la bibliothèque X11.
  27          gcc -l X11 -c <file.c> -o <file.o>
  28          # Ensuite on compile le fichier objet en incluant les bibliothèques statiques (*.a)
  29          gcc <file.o> /usr/lib/libX11.a /usr/lib/libxcb.a /usr/lib/libXau.a /usr/lib/libXdmcp.a -o <file.exe>
  30          
  31      Rq1: apparemment, il ne vaut mieux utiliser la solution 1), ie ne pas inclure
  32           les bibliothèques dans le binaire car :
  33           - ça sert à ça justement. Les bibliothèques sont présentes
  34             sur le système hôte et sont appelées par le binaire quand c'est nécessaire.
  35           - ça peut être source de problèmes. Si on inclut une bibliothèque
  36             dans le binaire, celle-ci peut ne pas être compatible avec le système
  37             hôte et il vaut mieux que le système hôte appelle sa propre bibliothèque
  38             (à condition que celle-ci soit présente bien sûr).
  39  
  40      Rq2: la compilation est à faire sur un système 32 bits et sur un système 64 bits
  41           afin d'avoir un binaire compatible 32 bits et un autre binaire compatible
  42           64 bits.
  43           
  44           
  45      Rq3: pour savoir si le système est 64 bits ou non :
  46           $ grep '^flags' /proc/cpuinfo | grep 'lm'
  47           Il faut que les lignes contiennent le flag « lm ».
  48           Attention, le flag « lahf_lm » lui n'a rien à voir.
  49           Il faut le flag « lm » tout court. S'il n'est pas présent,
  50           alors le système n'est pas 64 bits et donc il est
  51           très probablement 32 bits.
  52  */


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1