Pregunta

He escrito un código de muestra como este en OpenSuse 11.3 (una instalación muy nueva) para OpenGL (instalado todas las libres que surgieron en busca de OpenGL del Gerente de Software de YAST2).

**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 ''

¿Tengo que instalar cualquier libs adicional en SUSE para que esto funcione?

¿Fue útil?

Solución

Necesitas establecer el DISPLAY Entorno variable para señalar a su servidor X (que obviamente debe iniciarse).

Si ese es el mismo host que está ejecutando ese código, DISPLAY=:0 funcionará para configuraciones habituales.

Si está ejecutando ese código de forma remota a través de SSH, asegúrese de que tanto su servidor como su cliente SSH estén configurados para (y usando) reenvío X11. (Debería "solo funcionar" después de eso).

Si estás ejecutando de forma remota con algo más que ssh, establezca DISPLAY=<hostname or IP address of your display>:<display number>, así que algo como:

DISPLAY=192.168.0.1:0.0

Nota: para que OpenGL funcione bien de forma remota, necesitará un servidor que tenga la extensión GLX.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top