2011-09-06 37 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