2016-05-28 45 views
3

在SDL2項目中的任何事件,SDL_PollEvents(SDL_Event* e)不發送任何事件,並返回永諾0,所以我不能處理任何事件。我的事件處理循環看起來不錯:SDL2不recieving在所有

SDL_Event e; 

while(SDL_PollEvent(&e) > 0) 
{ 
    //this is never reached ! 
    printf("recieved event %d\n", e.type); 

    switch(e.type) 
    { 
     case SDL_QUIT: 
      quit = true; 
    } 
} 

在另一方面,它編譯罰款,繪畫作品,而且我敢肯定,它不是停留在一個無限循環(我把它打印出來,在每一幀的消息) 。

我鏈接到SDL2和所有其他依賴關係,我甚至使gcc/g++調用sdl-config --cflags。這怎麼解決?

回答

0

您不應該致電sdl-config --cflags。這是SDL(庫的第一個版本),而不是SDL2。它以某種方式衝突並阻止所有事件達到SDL_PollEvents()。刪除它,它應該工作!

+0

如果有人知道如何停止事件,我會很高興知道! –

+0

'--cflags'將包含路徑添加到SDL1的包含,而不是SDL2。很難確切知道(特別是因爲您沒有指定是否包含''或''),但它可能與SDL1之間的SDL_Event結構(佈局*和尺寸本身)不匹配和SDL2,導致未定義的行爲。 –

+0

@TimCăsThans!我在Linux上,所以我包含'' –