Programmation X11

Salut,

Pour pouvoir travailler un tp de programation X11, j'ai installé knoppix.

lorsque je compile mon fichier avec :

gcc fichier.c -L/usr/X11R6/lib -lx11


Je recois le message suivant:
/usr/bin/ld : cannot find -lx11

Soit ma distribution n' inclut pas tous les outils de devellopements,
soit il faut les installer...

Si vous avez une solution à mon problème, merci de m'aider
Configuration: dual boot knoppix /Windows sur un portable compaq 2,66Ghz

7 réponses

  1. Salut,
    Voila ce que je fais chez moi et qui fonctionne. C'est après avoir fait ce test
    que j'ai répondu à ton POST.
    crabs:~/SYSTEM/C> cat x11_compil.c
    #include <X11/Xlib.h>
    
    int main( int argc, char** argv )
            {
            Display* d = XOpenDisplay( ":0.0" ) ;
            XCloseDisplay( d ) ;
            return 0 ;
            }
    
    crabs:~/SYSTEM/C> gcc x11_compil.c -L/usr/X11R6/lib -lx11
    /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/ld: cannot find -lx11
    collect2: ld returned 1 exit status
    crabs:~/SYSTEM/C> gcc x11_compil.c -L/usr/X11R6/lib -lX11      
    crabs:~/SYSTEM/C> 

    Les résultats du find semblent confirmer que les bbiliothèques sont installées :
    précense du libX11.a (pour la compil avec la bibliothèque statique) et des
    libX11.so (pour la compilation avec la bibliothèque dynamique et nécessaires
    lors de l'éxécution du programme).
    Il faut supprimer le -lx11 (avec X minuscule).
    A+, crabs
    1. Salut,
      Sur ma distro c'est lX11 (avec un X majuscule)
      sinon tu fait un find /usr -iname 'libx11*' comme ça tu vérifies si tu as
      au moins les bibliothèques installées.
      A+, crabs
      1. merci de ton aide Crabs
        j'ai tapé :
        find /usr -iname 'libx11*'


        Malheureusement, le résultat ne me parle pas beaucoup :

        knoppix@0[tp_ihm]$ find /usr -iname 'libx11*'
        /usr/X11R6/lib/libX11.a
        /usr/X11R6/lib/libX11.so
        /usr/X11R6/lib/libX11.so.6
        /usr/X11R6/lib/libX11.so.6.2
        /usr/lib/libX11-nx.so
        /usr/lib/libX11-nx.so.6
        /usr/lib/libX11-nx.so.6.2
        /usr/lib/libx11globalcomm.la
        /usr/lib/libx11globalcomm.so
        /usr/lib/libx11globalcomm.so.1
        /usr/lib/libx11globalcomm.so.1.0.0
        /usr/share/doc/libx11-6
        /usr/share/doc/libx11-dev

        au cas où j'ai tapé
        find /usr -iname 'libX11*'
        avec un X.

        /usr/X11R6/lib/libX11.a
        /usr/X11R6/lib/libX11.so
        /usr/X11R6/lib/libX11.so.6
        /usr/X11R6/lib/libX11.so.6.2
        /usr/lib/libX11-nx.so
        /usr/lib/libX11-nx.so.6
        /usr/lib/libX11-nx.so.6.2
        /usr/lib/libx11globalcomm.la
        /usr/lib/libx11globalcomm.so
        /usr/lib/libx11globalcomm.so.1
        /usr/lib/libx11globalcomm.so.1.0.0
        /usr/share/doc/libx11-6
        /usr/share/doc/libx11-dev

        que dois-je en conclure ?

        est ce que x11 est bien installé ?
        Si non comment faire ?
        1. Salut,
          Ben ça à l'air pas mal, as-tu refait la compil avec le X en majuscule.
          gcc fichier.c -L/usr/X11R6/lib -lX11

          A+, crabs
          1. oui, j'ai aussi essayé avec l'option -lX11 mais ca produit le même resultat.

            le probleme, c'est que si je compile uniquement avec l'autre option de compilation, la compilation ne marche pas...
            1. Bonsoir,

              Sur knoppix, pour installer les fichiers de bibliothèque:
              #apt-get install libx11-devel

              Puis pour compiler:
              $gcc -Wall prog.c -lX11 -L/usr/X11R6/lib -o prog

              a+