2

我在 OpenSuse 11.3(一个非常新的安装)中为 openGL 编写了这样的示例代码(安装了从 Yast2 的软件管理器中搜索 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 中安装任何其他库才能使其正常工作?

4

1 回答 1

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 扩展的服务器。]

于 2011-09-06T20:36:42.157 回答