Acabo de empezar a usar Graphics en C y encontré este error mientras ejecutaba un programa simple que dibuja círculos concéntricos:
user@user:~/Documents/C$ gcc circle.c -lX11 -lgraph user@user:~/Documents/C$ ./a.out [xcb] Unknown sequence number while processing queue [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called [xcb] Aborting, sorry about that. a.out: ../../src/xcb_io.c:274: poll_for_event: Assertion '!xcb_xlib_threads_sequence_lost' failed. Aborted (core dumped)Y:
[xcb] Unknown sequence number while processing queue [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called [xcb] Aborting, sorry about that. a.out: ../../src/xcb_io.c:274: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed. Busqué algunos foros en Internet y sugirieron que agregar #include<X11/Xlib.h> y llamar a XInitThreads() al comienzo de main() resolvería el problema, pero sigo teniendo el mismo error mientras ejecuto.
He adjuntado el código:
#include<stdio.h> #include<graphics.h> #include<X11/Xlib.h> int main() { XInitThreads(); int gd=DETECT, gm,r,x; initgraph(&gd,&gm,NULL); setbkcolor(WHITE); setcolor(BLACK); for(r=10;r<100;r+=10) { circle(150,150,r); } scanf("%d",&x); closegraph(); return 0; }Uso Ubuntu 14.04 y GCC para compilar.
Agregué la siguiente llamada antes closegraph() ;
wait_for_char() ;
donde:
void wait_for_char() { //Wait for a key press int in = 0; while (in == 0) { in = getchar(); } } Esto resuelve el problema sin tener que llamar a XInitThreads() . No me preguntes por qué. ¡Pero uso wait_for_key() de todos modos para darme tiempo para mirar!