我剛剛使用C中的圖形開始,並運行一個簡單的程序,吸引了同心圓,而我遇到這個錯誤:與圖形C程序被中止,即使XInitThreads被稱爲
用戶@用戶:〜 /文檔/ C $ GCC circle.c -lX11 -lgraph
用戶@用戶:處理〜/文檔/ C $ ./a.out
[XCB]未知序列號隊列 [XCB大多數可能這是一個多線程客戶端,並且XInitThreads尚未被調用
[xcb]墮胎,對此感到遺憾。 a.out:../../src/xcb_io.c:274:poll_for_event:聲明'!xcb_xlib_threads_sequence_lost'失敗。
中止(核心轉儲)
用戶@用戶:處理隊列〜/文檔/ C $ [XCB]未知序列號
[XCB]最有可能的,這是一個多線程客戶端和XInitThreads尚未被稱爲
[xcb]正在中止,對此抱歉。 a.out:../../src/xcb_io.c:274:poll_for_event:斷言`!xcb_xlib_threads_sequence_lost'失敗。
我查閱了一些論壇,在互聯網上,他們建議增加#include<X11/Xlib.h>
並在main()
開始就解決問題調用XInitThreads()
,但運行時我仍然得到同樣的錯誤。 我已經附加代碼:
#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;`}`
我使用Ubuntu 14.04和GCC編譯。
這可能會有所幫助: https://cgit.freedesktop.org/xorg/lib/libX11/tree/src/xcb_io.c#n212事件隊列的 所有權(如果你的庫使用XCB)是必需的,並且如果其他線程持有它,則可能是此錯誤的一個可能原因。 – GoofyBall