Nouveau内核在Allegro5-C ++上拒绝了pushbuf

时间:2015-05-15 14:40:13

标签: c++ kernel nvidia allegro

我遇到了麻烦: 我已经在Ubuntu上安装了Allegro5,并编译了我的Helloworld项目

#include <allegro5\allegro.h> #include <allegro5\allegro_native_dialog.h> int main(void) {
  ALLEGRO_DISPLAY *display=NULL;
  if(!al_init()) {
    al_show_native_message_box(NULL, NULL, NULL, "failed to initialize allegro!", NULL, NULL);
    return -1;
  }
  display=al_create_display(640,
  480);
  if(!display) {
    al_show_native_message_box(NULL, NULL, NULL, "failed to initialize display!", NULL, NULL);
    return -1;
  }
  al_destroy_display(display);
  return 0;
}

with“g ++ -Wall TestProgram.cc pkg-config --libs allegro-5.0 allegro_font-5.0 allegro_ttf-5.0”。 在终端上运行它,它给了我这个错误(或崩溃?)消息:

nac@NAC:~$ ./a.out 
nouveau: kernel rejected pushbuf: Bad file descriptor
nouveau: ch0: krec 0 pushes 1 bufs 1 relocs 0
nouveau: ch0: buf 00000000 00000002 00000004 00000004 00000000
nouveau: ch0: psh 00000000 00000004a8 00000004bc
nouveau:    0x00107b00
nouveau:    0x00000000
nouveau:    0x20217000
nouveau:    0x00000003
nouveau:    0x1000f010

经过一些测试后,我发现它在“al_destroy_display(display);”之后或之后崩溃,事实上,在该错误之后我必须按ctrl + C结束程序。

我该怎么办?

2 个答案:

答案 0 :(得分:2)

这个问题已经有几个月了,但它在搜索此错误时首次出现。我在使用Allegro 5.0.10运行LinuxMint 17.2时遇到了同样的错误,并通过更新我的显卡(GeForce GTX 460)驱动程序解决了这个问题。希望这有助于未来的用户。

答案 1 :(得分:0)

我在 Rstudio 上遇到了类似的问题(这是 rstudio 上非常有名的错误)

建议在终端中使用以下命令运行它:

QT_XCB_FORCE_SOFTWARE_OPENGL=1 rstudio

所以,在你的情况下,我认为:

QT_XCB_FORCE_SOFTWARE_OPENGL=1 ./a.out