2011-09-06 194 views
1

我已经在OpenSuse 11.3(一种非常新的安装)中为openGL编写了这样的示例代码(安装了从Yast2的软件管理器中搜索到的所有lib) 。“openSuse和openGL”环境的示例程序

**File: SimpleOpenGL.c** 

#include <GL/glut.h> 

int main(int argc,char **argv) 
{ 
    glutInit(&argc,argv); 

    glutInitWindowPosition(100,100); 
    glutInitWindowSize(800,600); 
    glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); 
    glutCreateWindow("Window"); 
} 

Compiling with : $ gcc -o foo -lGL -lglut SimpleOpenGL.c 
Running with : $ ./foo 
freeglut (./foo): failed to open display '' 

我一定要安装在SUSE任何附加库得到这个工作?

+1

任何机会,你是不是坐在OpenSuse工作站?无法打开显示通常意味着没有活动的X主机。 – IslandCow

+0

我在装有OpenSuse 11.3的HP笔记本电脑上。那么,有没有解决方法可以绕过这个问题? :( – Aditya369

回答

3

您需要将DISPLAY环境变量设置为指向您的X服务器(显然必须启动它)。

如果这是运行该代码的主机,DISPLAY=:0将适用于常规设置。

如果您通过SSH远程运行该代码,请确保您的服务器和您的ssh客户端都设置为(并使用)X11转发。 (它应该“只是工作”后)

如果你用远程比SSH别的东西运行,设置DISPLAY=<hostname or IP address of your display>:<display number>,所以像:

DISPLAY=192.168.0.1:0.0 

[注:对OpenGL很好地远程工作,您需要一台具有GLX扩展名的服务器。]

+0

恐怕我对X-Server,DISPLAY环境变量,x11等这些术语不熟悉。您能指导我通过Suse的几个步骤吗? – Aditya369

+0

有关X11显示系统的信息,请参见[X Window系统] (http://en.wikipedia.org/wiki/X_Window_System)。DISPLAY环境变量是X11客户端(应用程序)用来知道服务器(实际显示屏幕上的内容)的位置的东西。 X11,客户端和服务器不一定要在同一台机器上 – Mat

+0

非常感谢!!现在已经有效了!! – Aditya369