Hiho,
Ich setzte mich zur Zeit gerade mit xlib auseinander … besser: ich möchte mich mit xlib auseinandersetzen, werde aber durch einen immerwährenden Compiler-Fehler ausgebremst
Compiling: gcc -o test xpoints.c
Fehler:
/tmp/cc6ymrs4.o: In function ‚main‘:
/tmp/cc6ymrs4.o(.text+0x27): undefined reference to ‚XOpenDisplay‘
/tmp/cc6ymrs4.o(.text+0xe0): undefined reference to ‚XCreateSimpleWindow‘
/tmp/cc6ymrs4.o(.text+0x132): undefined reference to ‚XAllocNamedColor‘
/tmp/cc6ymrs4.o(.text+0x166): undefined reference to ‚XCreateGC‘
/tmp/cc6ymrs4.o(.text+0x185): undefined reference to ‚XSelectInput‘
/tmp/cc6ymrs4.o(.text+0x198): undefined reference to ‚XMapWindow‘
/tmp/cc6ymrs4.o(.text+0x1b4): undefined reference to ‚XWindowEvent‘
/tmp/cc6ymrs4.o(.text+0x1ec): undefined reference to ‚XClearWindow‘
/tmp/cc6ymrs4.o(.text+0x210): undefined reference to ‚XDrawPoint‘
collect2: ld returned 1 exit status
Source:
#include
#include
main(argc,argv)
int argc;
char **argv;
{
Display *display;
Window root, window;
long fgcolor, bgcolor;
int screen, pointx, pointy;
long eventmask = ButtonPressMask|ExposureMask|KeyPressMask;
XEvent event;
XGCValues gcval;
GC draw;
Colormap cmap;
XColor color, ignore;
char *colorname = „red“;
if (!(display = XOpenDisplay(argv[1]))) {
perror(„XOpenDisplay“);
exit(1);
}
root = RootWindow(display,screen = DefaultScreen(display));
fgcolor = BlackPixel(display,screen);
bgcolor = WhitePixel(display,screen);
window = XCreateSimpleWindow(display,root,0,0,200,200,2,fgcolor,bgcolor);
cmap = DefaultColormap (display, screen);
XAllocNamedColor(display, cmap, colorname, &color, &ignore);
fgcolor = color.pixel;
gcval.foreground = fgcolor;
gcval.background = bgcolor;
draw = XCreateGC(display,window,GCForeground|GCBackground,&gcval);
XSelectInput(display,window,eventmask);
XMapWindow(display,window);
for (; {
XWindowEvent(display,window,eventmask,&event);
switch (event.type) {
case Expose:
XClearWindow(display,window);
break;
case ButtonPress:
XDrawPoint(display,window,draw, event.xbutton.x,event.xbutton.y);
break;
case KeyPress:
exit(0);
default:
fprintf(stderr,„Unexpected event: %d\n“,event.type);
}
}
}