IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

message d'erreur


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut message d'erreur
    Bonjour à tous,

    J'ai ces messages d'erreur quand je lance cl first.c avec le compilateur Visual c++ toolkit 2003.

    first.obj : error LNK2019: unresolved external symbol _XCloseDisplay referenced in function _main
    first.obj : error LNK2019: unresolved external symbol _XDestroyWindow referenced in function _main
    first.obj : error LNK2019: unresolved external symbol _XNextEvent referenced in function _main
    first.obj : error LNK2019: unresolved external symbol _XMapWindow referenced in function _main
    first.obj : error LNK2019: unresolved external symbol _XSelectInput referenced in function _main
    first.obj : error LNK2019: unresolved external symbol _XCreateSimpleWindow referenced in function _main
    first.obj : error LNK2019: unresolved external symbol _XOpenDisplay referenced in function _main
    first.exe : fatal error LNK1120: 7 unresolved externals

    Mes bibliothèques sont Xlib.h et stdio.h.

    Quelqu'un a t'il une idée ?
    Merci par avance.
    Gérald

  2. #2
    Membre émérite
    Avatar de Pouic
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 669
    Par défaut Re: message d'erreur
    Citation Envoyé par legg27
    Mes bibliothèques sont Xlib.h et stdio.h.
    Ce ne sont pas des bibliothèques, mais des headers.... Rien à voir : c'est juste l'interface de ces mêmes bibliothèques...

    Du dois rajouter un truc du genre
    sur ta ligne de compilation...
    Software becomes slower faster than hardware becomes faster
    [size=1]
    http://xrenault.developpez.com

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut suite
    Je pense que cette commande -lX11 n'est pas reconnu pas Visual C++

    Celà devrait fonctionner avec la commande cc first.c -lX11 mais la commande cl first.c -lX11 ne marche pas. J'ai essayé de voir dans l'aide de la commande cl mais je n'ai rien trouvé.

    D'ailleurs celà sert à quoi de mettre -lX11 ?

    Merci.
    Gérald

  4. #4
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Bonjour,

    en fait il faut que tu fasses l'édition de lien contre ta bibliothèque. Deux possibilités avec VC++ :

    [en supposant que ta bib. s'appelle Xlib.lib]

    1) en indiquant la bibliothèque dans le source :

    #pragma comment (lib, "Xlib.lib")

    2) en passant le bon switch au linker :

    Menu Projet > propriétés > linker > Additional dependencies

    Là indiquer Xlib.lib

    Dans les deux cas il faut que le ficher .lib soit visible par VC++ lors de l'édition de lien.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Si je ne me trompe, pour utiliser une librairie ave cl.exe, il faut ajouter le nom de cette dernière en fin de ligne de comande ("cl.exe first.c nomDeLaLibrairie.lib").

    Vu le nom des fonctions non résolues, il semblerait que tu essayes de compiler un programme utilisant la Xlib (ex. : http://tronche.com/gui/x/xlib/display/opening.html) sous Windows.
    Déjà, ce n'est pas très courant mais ce qui l'est encore moins est d'avoir trouvé une librairie compatbile avec VC++. Sous cygwin, j'aurai compris, mais là je serai intéressé par l'URL qui permettrait d'obtenir une telle librairie...

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Salut,

    Hum... On n'ajoute pas plutôt la librarie à l'appelle du linker (link.exe) ?

    Sinon, j'ai Visual 6 et le Platform SDK de Février 2003, et je n'ai rien vu qui rappelle X11 ou Xlib dans les librairies fournies: Il faut sûrement les télécharger quelques part...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut suite
    En fait j'ai installé cygwin avec X-windows et j'ai ensuite téléchargé le visual c++.

    J'ai déplacé le répertoire X11 dans C:\Program Files\Microsoft Visual C++ Toolkit 2003\include.

    Peut être ce que j'ai fait au-dessus n'a aucun sens ?

    enfin maintenant comme je rencontres des problèmes avec visual c++ je vais installer gcc sous cygwin et on va voir ce que celà donne.

    A mon avis le pb vient du fait que les bibliothèques de X-windows ne marche pas avec Visual c++ de microsoft ou un truc dans le genre...

    Je teste et vous tiens au courant.
    a+
    Merci
    Gérald.

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: suite
    Citation Envoyé par legg27
    En fait j'ai installé cygwin avec X-windows et j'ai ensuite téléchargé le visual c++.
    Quelle salade !
    J'ai déplacé le répertoire X11 dans C:\Program Files\Microsoft Visual C++ Toolkit 2003\include.

    Peut être ce que j'ai fait au-dessus n'a aucun sens ?
    En effet. Pour faire du X-windows, il faut à priori une machine unixoide. On peut peut être simuler avec l'environnement Cygwin, mais il faut rester exclusivement en Cygwin et utiliser le compilateur gcc qui va avec. Par question de demander à Visual C++ de s'y mettre. Il ne va rien comprendre au format des bibliothèques...

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Cela se voit assez simplement à l'extension : ".lib" pour VC++, ".a" pour gcc (avec ou sans Cygwin).

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut suite pb
    Finalement j'ai installé cygwin et tetné de le compiler sous cygwin.

    Lorsque je lance la commande cc first.c -lX11 -o first

    Voici le message d'erreur que j'obtiens :

    "cc first.c -lXlib -o first
    /usr/lib/gcc/i686-pc-cygwin-3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lXlib
    collect2 : ld retruned 1 exit status"
    Celà signifie quoi ?

    MErci par avance.
    Gérald

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: suite pb
    Citation Envoyé par legg27
    Finalement j'ai installé cygwin et tetné de le compiler sous cygwin.

    Lorsque je lance la commande cc first.c -lX11 -o first

    Voici le message d'erreur que j'obtiens :

    "cc first.c -lXlib -o first
    /usr/lib/gcc/i686-pc-cygwin-3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lXlib
    collect2 : ld retruned 1 exit status"
    Celà signifie quoi ?
    As-tu installé le package X11 ?

    Détails sur le forum "Outils pour C & C++ / EDI / Compilateurs / etc"

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut suite
    Oui

    J'ai installé ce package avec cygwin, maintenant peut être faut il qu'il soit à un endroit particulier ?

    MErci

  13. #13
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut Re: suite pb
    Citation Envoyé par Emmanuel Delahaye
    [...]
    As-tu installé le package X11 ?
    [...]
    J'aurai plutôt dit "xorg-x11-devel".
    Citation Envoyé par legg27
    J'ai installé ce package avec cygwin, maintenant peut être faut il qu'il soit à un endroit particulier ?
    Si tu utilises "setup.exe" pour installer les packages, il doit les mettre où il faut.
    Citation Envoyé par legg27
    Lorsque je lance la commande cc first.c -lX11 -o first

    Voici le message d'erreur que j'obtiens :

    "cc first.c -lXlib -o first
    /usr/lib/gcc/i686-pc-cygwin-3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lXlib
    collect2 : ld retruned 1 exit status"
    Il y a quelque-chose qui m'échappe. Tu nous dit taper "cc first.c -lX11 -o first" et obtenir "cc first.c -lXlib -o first" ???

    Que donne ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gcc -I/usr/X11R6/include -L/usr/X11R6/lib -lX11 -o first first.c

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut
    Désolé c'est une erreur, j'ai bien tapé :
    gcc first.c -lX11 -o first (le -Xlib dans mon message est une erreur).

    si je tape la commande

    gcc -I/usr/..... -L/usr/... -lX11 -o first first.c voici le message que j'obtiens :
    noms du répertoire où se trouvent mon fichier/temp/ccCUGB7k.o:first.c.text+0x3b):undefined reference to '_XOpenDisplay'
    j'ai un message similaire pour XCreatesimple windows, XSelectinput, etc...
    collect2: ld retruned 1 exit status.

    MErci
    Gérald

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut suite
    Voici la commande qui semble fonctionner :

    "gcc first.c -I/cygdrive/c/cygwin/usr/X11R6/lib -L/cygdrive/c/cygwin/usr/X11R6/lib -lX11 -o first"

    Aucun message d'erreur n'est affichée et j'ai un fichier first.exe qui a été créé.

    Par contre quand je lance ./first.exe cygwin m'affiche :
    Erreur : XOpenDisplay

    Je crois qu'un installant un pc sous linux j'aurai moins de pbs......

    merci.

  16. #16
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: suite
    Citation Envoyé par legg27
    Par contre quand je lance ./first.exe cygwin m'affiche :
    Erreur : XOpenDisplay
    Je pense que qu'il manque un serveur X... Tout cela n'a rien à voir avec le langage C...
    Je crois qu'un installant un pc sous linux j'aurai moins de pbs......
    Possible...

  17. #17
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut Re: suite
    Citation Envoyé par legg27
    Voici la commande qui semble fonctionner :

    "gcc first.c -I/cygdrive/c/cygwin/usr/X11R6/lib -L/cygdrive/c/cygwin/usr/X11R6/lib -lX11 -o first"

    Aucun message d'erreur n'est affichée et j'ai un fichier first.exe qui a été créé.
    Alors tu as un problème avec ton installation de Cygwin.
    En effet, si tu as installé cygwin dans C:\cygwin, alors "/usr/X11R6/lib" (cf. mon message précédent) est le même répertoire que /cygdrive/c/cygwin/usr/X11R6/lib (puisque "/cygdrive/c" correspond à "C:\").

    Citation Envoyé par legg27
    Par contre quand je lance ./first.exe cygwin m'affiche :
    Erreur : XOpenDisplay
    Pour qu'un programme utilisant X11 puisse afficher quelque-chose, il faut au minimum qu'un serveur X soit lancé ("startxwin.sh" sous cygwin si ma mémoire est bonne).

    Citation Envoyé par legg27
    Je crois qu'un installant un pc sous linux j'aurai moins de pbs......
    Pas sûr. Si tu l'installes aussi bien que Cygwin...

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut suite...
    celà fonctionne enfin.
    Je me disais bien qu'il fallait que je lance le serveur X....


    Mais j'ai encore quelques petites questions...

    J'ai tapé un prg, je le compile et ça marche.
    Je lance mon fichier exe et voici le résultat que j'obtiens :

    "
    X Error of failed request : BadWindow (invalid window parameter)
    Major opcode of failed request : 8(X_MapWindow)
    Ressource id in failed request : 0x7c809bbb
    Serial number of failed request :11
    Current serial number in output stream : 15
    "

    Si quelquu'n a une idée...merci.
    Gérald

  19. #19
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut Re: suite...
    Citation Envoyé par legg27
    Mais j'ai encore quelques petites questions...
    Ca tombe bien, le forum est fait pour ça.

    Citation Envoyé par legg27
    J'ai tapé un prg, je le compile et ça marche.
    [...]
    X Error of failed request : BadWindow (invalid window parameter)
    [...]
    Ca n'a pas l'air de marcher si tu veux mon avis

    Est-on censé deviner ton code ?
    Si tu es sur Paris, il y a peut-être le salon de la voyance en ce moment. Eux, peut-être qu'ils pourront deviner ce que tu as écrit comme code (mais je ne sais pas si ils sauront trouver la cause du problème).
    Et si ton code est top-secret : essaye de nous obtenir une habilitation.

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut suite
    voici mon code...
    ------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    #include <stdio.h>
    #include <X11/Xlib.h>
     
    #define LARGEUR 300
    #define HAUTEUR 70
    #define ECART 10
     
    main(argc,argv)
    int argc;
    char *argv[];
    {
     int largsouswin, hautsouswin;
     int lignebase;
     Display *dpy;
     Window root;
     Window winprinc, souswin1, souswin2;
     int screen;
     unsigned long white_pixel, black_pixel;
     unsigned long MasqueEvt;
     XGCValues gcvalues;
     GC gc;
     unsigned int gcvalue_mask;
     
     dpy=XOpenDisplay(NULL);
     screen=DefaultScreen(dpy);
     root=RootWindow(dpy,screen);
     
     white_pixel=WhitePixel(dpy,screen);
     black_pixel=BlackPixel(dpy,screen);
     
     winprinc=XCreateSimpleWindow(dpy,root,0,0,LARGEUR,HAUTEUR,2,black_pixel,white_pixel);
     largsouswin=(LARGEUR-4*ECART)/2;
     hautsouswin=HAUTEUR-2*ECART;
     souswin1=XCreateSimpleWindow(dpy,winprinc,ECART,ECART,largsouswin,hautsouswin,2,black_pixel,white_pixel);
     
     XMapWindow(dpy,winprinc);
     XMapWindow(dpy,souswin1);
     XMapWindow(dpy,souswin2);
     
     MasqueEvt=ButtonPressMask|ExposureMask;
     XSelectInput(dpy,souswin1,MasqueEvt);
     XSelectInput(dpy,souswin2,MasqueEvt);
     
     gcvalues.font=XLoadFont(dpy,"-adobe-courier-bold-r-normal--24-240-75-75-m-150-iso8859-1");
     gcvalues.foreground=black_pixel;
     gcvalue_mask=GCForeground|GCFont;
     gc=XCreateGC(dpy,root,gcvalue_mask,&gcvalues);
     
     for(;;)
     {
      XEvent ev;
      XNextEvent(dpy,&ev);
      switch(ev.type)
      {
            case ButtonPress :
            if(ev.xbutton.window==souswin1) printf("coucou\n");
            else if (ev.xbutton.window==souswin2)
            {
                    printf("fin du programme\n");
                    XUnloadFont(dpy,gcvalues.font);
                    XCloseDisplay(dpy);
                    exit(0);
            }
            break;
            case Expose : lignebase=hautsouswin/2;
            if (ev.xexpose.window == souswin1)
                    XDrawString(dpy,souswin1,gc,ECART,lignebase,"coucou",strlen("coucou"));
            else if (ev.xexpose.window==souswin2)
                    XDrawString(dpy,souswin2,gc,ECART,lignebase,"fin",strlen("fin"));
            break;
      }
     }
    }
    -------------------------------------------
    Merci

Discussions similaires

  1. [TSocket] Message d'erreur
    Par rgz dans le forum Web & réseau
    Réponses: 6
    Dernier message: 04/07/2003, 09h16
  2. Surcharger le message d'erreur après un OnException
    Par Tirlibibi dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/04/2003, 11h42
  3. Réponses: 4
    Dernier message: 04/03/2003, 01h05
  4. [CR] Message d'erreur
    Par nono1 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/09/2002, 14h54
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo