Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C] Utilizzo libreria Xlib.h

    Raga sto smanettando con questo semplice codice C che utilizza le librerie Xlib.h (sotto Linux ovvio :P)

    Ma il compilatore da errore in questi punti:

    codice:
     done = 0;
       
       while(done = 0)
       {
        XNextEvent(mydisplay, &myevent);
        switch(myevent.type);
        {
     -->  case Expose :
            if(myevent.xexpose.count == 0)
    	 XDrawImageString(myevent.xexpose.display, myevent.xexpose.window, mygc, 50, 50, hello, strlen(hello));
    	break;
         
     -->    case MappingNotify:
            XRefreshKeyboardMapping((XMappingEvent *)&myevent);
    	break;
    	
     -->    case ButtonPress:
     ###    XDrawImageString(myevent.xbotton.display, myevent.xbotton.window, mygc, myevent.xbotton.x, myevent.xbotton.y, hi, strlen(hi));
    	break;
    	
     -->    case KeyPress:
             i = XLookupString((XKeyEvent *)&myevent, text, 10, &mykey, 0);
    	 
          if(i == 1 && text[0] == 'q') done = 1;
           break;
        }
       }
    In sostanza dove ho messo le freccie dice :
    --> error: case label not within a switch statement

    Poi per tutte le voci myevent.xbotton : error: union has no member named `xbotton'



    Preciso che le ho dichiarato le suguenti variabili:

    Display *mydisplay;
    Window mywindow;
    GC mygc;
    XEvent myevent;
    KeySym mykey;
    XSizeHints myhint;
    int myscreen;
    unsigned long myforeground, mybackground;
    int i;
    char text[10];
    int done;
    Linguaggi : C/C++
    SO: WinXP, Slack 10

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    un problema dipende dal punto e virgola dopo lo swintch:

    switch(myevent.type);


    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    :maLOL:

    Assurdo che errore...!!!

    Grazie!!!

    Ora però dice che le funzioni nn sono referenziate!!!

    messaggi tipo:

    /tmp/cc8U3F4v.o(.text+0x1c): In function `main':
    : undefined reference to `XOpenDisplay'
    /tmp/cc8U3F4v.o(.text+0x2d): In function `main':
    : undefined reference to `DefaulScreen'
    /tmp/cc8U3F4v.o(.text+0x105): In function `main':
    : undefined reference to `XCreateSimpleWindow'
    /tmp/cc8U3F4v.o(.text+0x12f): In function `main':
    Linguaggi : C/C++
    SO: WinXP, Slack 10

  4. #4
    Mi potreste postare un sorgente che usi le Xlib "funzionante"
    sono dubbioso sul fatto che nn riesco a compilare niente!!!

    Uffa!!!
    Linguaggi : C/C++
    SO: WinXP, Slack 10

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    quelli che hai adesso soo errorei di linking, quando compili devi linkare la libreria xlib, ad esempio con un'opzione tipo : -x, consulta la documetnazione per sapere di preciso

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  6. #6
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Prova a compilare passando al GCC l'opzione -lX11
    Ad esempio:
    gcc -o eseguibile -lX11 sorgente.c

    Se usi una GUI come KDEvelop o Anjuta vai nell'apposita finestra per le opzioni da passare al Linker e aggiungici X11

    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  7. #7


    Uffaaaaaaaaa!!!

    Mi dice :

    /usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/ld: cannot find -lX11
    collect2: ld returned 1 exit status
    Linguaggi : C/C++
    SO: WinXP, Slack 10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.