Newsgroup: it.comp.os.linux.development
Titolo: X11 library come e dove cercare?

Salve, seguendo sia i libri che riviste, mi dicono di compilare i sorgenti
usando la seguente sintassi per gcc cioč:
gcc -I/usr/X11/include/ -L/usr/X11/lib/ -c provawin.c -o Prova
Intanto qualcosa va storto, cioč il compilatore mi dice che non trova delle
funzioni, infatti andando a vedere nelle directory, si trova /usr/X11R6 e
non /usr/X11.
La cosa strana č che tutti i sorgenti che hanno a che fare con creazioni di
Windows all'interno di XWindows non li riesco a compilare usando i makefile
allegati con i sorgenti!! Mentre i sorgenti per la manipolazione dello
schermo con NCurses funzionano!!
Insomma devo cambiare sistema operativo? Possibile?
Di seguito č riportato un sorgente di un libro (premesso che tutti i
sorgenti funzionano eccetto quelli per XWindow), mentre alla fine č
riportato il file
Makefile).
// bifurcation.c
//
// Copyright Mark Watson, 1999. Open Source Software License
//
// This program implement's biologist Robert May's
// population growth model. The output graphics shows
// regimes of stability and chaos in population size.
//
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
void draw_bifurcation(Window window, GC gc, Display *display, int screen,
XColor text_color);
main(int argc,char **argv) {
  Display *display;
  int screen;
  Window win;
  XColor blue;
  unsigned int width=500, height=231;
  XFontStruct *font_info;
  GC gc;
  Colormap cmap;
  XEvent x_event;
  XGCValues values;
  if ( (display=XOpenDisplay(NULL)) == NULL ) {
    perror("Could not open X display");
    exit(1);
  }
  screen = DefaultScreen(display);
  win = XCreateSimpleWindow(display, RootWindow(display, screen),
                            0, 0, width, height, 5,
                            BlackPixel(display, screen),  // border
                            WhitePixel(display, screen)); // background
  cmap=DefaultColormap(display,screen);
  XParseColor(display,cmap,"blue",&blue);
  XAllocColor(display,cmap,&blue);
  if ((font_info = XLoadQueryFont(display,"9x15")) == NULL) {
    perror("Use fixed font\n");
    font_info = XLoadQueryFont(display,"fixed");
  }
  gc = XCreateGC(display,win,(unsigned long)0,&values);
  XSetFont(display, gc, font_info->fid);
  XSetForeground(display, gc, BlackPixel(display,screen));
  XSetStandardProperties(display, win,
    "Robert May's population model",
    "Bifurcation", None,
                         0, 0, NULL);
  XSelectInput(display, win, ExposureMask | ButtonPressMask);
  XMapWindow(display, win);
  draw_bifurcation(win,gc,display,screen,blue);
  while (1) {
    XNextEvent(display, &x_event);
    switch (x_event.type) {
    case Expose:
      draw_bifurcation(win,gc,display,screen,blue);
      break;
    case ButtonPressMask:
      XCloseDisplay(display);
      exit(0);
    default:
      break;
    }
  }
}
void draw_bifurcation(Window win, GC gc, Display *display,
   int screen, XColor font_color) {
  float lambda = 0.1;
  float x = 0.1f;
  float population = 0.0;
  int x_axis, y_axis, iter;
  XSetForeground(display, gc, font_color.pixel);
  XDrawString(display, win, gc, 236,22,
       "Extinction", strlen("Extinction"));
  XDrawString(display, win, gc, 16, 41,
       "Steady state", strlen("Steady state"));
  XDrawString(display, win, gc, 334, 123,
       "Period doubled", strlen("Period doubled"));
  XSetForeground(display, gc, BlackPixel(display,screen));
  for (y_axis=0; y_axis<198; y_axis++) {
    lambda = 4.0f * (0.20f + (y_axis / 250.0f));
    for (iter=0; iter<198; iter++) {
      population = lambda * x * (1.0f - x);
      x_axis = (int)(population * 500.02f);
      if (x_axis > 0.0f && x_axis < 501.0f) {
        XDrawLine(display,win,gc, x_axis, y_axis, x_axis, y_axis);
      }
      x = population;
    }
  }
}
Fine sorgente.
Makefile:
bifurcation: bifurcation.c
 cc -o bifurcation bifurcation.c -lX11
clean:
 rm -r -f *.o bifurcation
Fine Makefile
Spero che qualcuno mi possa aiutare!!
Forse c'č qualcosa da fare prima?
Come se non bastasse (dopo alcuni tentativi di compilare questo sorgente),
quando esco da StartX, si evidenziano circa 4 rige con il seguente
messaggio:
KiKbd: X11 error: BadWindow (invalid Window parameter)
Domanda: Cosa sta per accadere al Linux ? Devo reinstallare tutto d'accapo?
Scusandomi per questa lunga lettera, vi ringrazio.
doberm...@tin.it

 cc -o bifurcation bifurcation.c -lX11
Questo non funzionera` mai, il compilatore da solo non trovera` include
e librerie.
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]
Marco | * The Internet is full. Go away.  -- Joel Furr *
      | (Ri)scoprire fidonet: 
http://bbs.mi.linux.it

 Domanda: Cosa sta per accadere al Linux ?
Il problema è nel manico. ;)
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)


Gia ci ho provato senza successo, ma la domanda č dove sta la libreria
fisicamente?



bella domanda. ho linux installato da 2 giorni, nella versione
(purtroppo) corel. anch'io usando i makefile forniti col software ho
problemi con gli include e le librerie X. bo... ciao!

 sorgenti funzionano eccetto quelli per XWindow), mentre alla fine č


Andrea ti mando un MAGNIFICO GRAZIE , era diventato un'incubo la
compilazione con la lib X11.
Tanti saluti
Nicola
doberm...@tin.it