新内核在allegro5 - c++上拒绝pushbuf

Nouveau kernel rejected pushbuf on Allegro5-C++

本文关键字:c++ 拒绝 pushbuf allegro5 内核 新内核      更新时间:2023-10-16

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

#include <allegro5allegro.h> #include <allegro5allegro_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结束程序。

我该怎么办??

这个问题已经有几个月了,但是在搜索这个错误时,它是第一个出现的问题。我在运行LinuxMint 17.2和Allegro 5.0.10时遇到了同样的错误,并通过更新我的显卡(GeForce GTX 460)驱动程序来解决它。

我在Rstudio上也遇到过类似的问题(这是Rstudio上非常有名的bug)

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

QT_XCB_FORCE_SOFTWARE_OPENGL=1 rstudio

所以,就你的情况而言,我认为:

QT_XCB_FORCE_SOFTWARE_OPENGL=1 ./a.out