freeglut无法用valgrind打开显示

时间:2012-05-03 22:40:22

标签: c++ eclipse opengl valgrind glut

我正在使用Valgrind插件在Ubuntu 12.04上运行Eclipse IDE。我已经用C ++开发游戏很长一段时间了,而且我似乎在某个地方出现了内存错误。通常情况下,我跟Valgrind追踪这些。但是,当我运行valgrind时,过剩无法初始化。我应该注意,当我不使用valgrind时,游戏初始化没有问题。我的主要功能的代码如下:

int main(int argc, char** argv) {
  char windowTitle[12] = "Game Window";
  printf("Initializing Glut...\n");
  glutInit(&argc, argv);
  printf("Glut initialized!\n");
  alutInit(&argc, argv);
  Game_Object* game = new Game_Object(windowTitle, 1200, 675, argc, argv);
  delete game;
  printf("game ended\n");
  return 0;
}

结果输出到控制台是:

Initializing Glut
freeglut (/home/dsnettleton/Documents/Programming/Eclipse/workspace/Plutoids/Debug/Plutoids): failed to open display ''

显然,程序在valgrind运行时并没有走得太远。 在我开发的这个最后阶段真的很沮丧,只是因为试图清除内存错误而陷入困境。什么可能会使初始化过剩,以及如何解决问题呢?

2 个答案:

答案 0 :(得分:5)

这是我的猜测:您的IDE可能缺少$DISPLAY环境变量。某些地方你必须配置环境以在启动Valgrind之前设置$DISPLAY

启动终端echo $DISPLAY。它的值可能是:0.0

在最坏的情况下,我尝试在C代码中使用setenv()或在启动Valgrind的命令行中设置DISPLAY(这些案例都没有经过测试,它们可能无效)。

答案 1 :(得分:1)

此外,您还必须在Eclipse中添加此环境变量DISPLAY:= 0.0。 在可执行文件的启动配置中,将Display变量添加到Environment选项卡,或选择继承环境。

  

运行> RunConfiguration ...->环境

现在点击

  

并添加

  

显示:0

在其中