2015-02-09 85 views
0

我試圖用opengl和glut(eclipse)來啓動hello世界程序。我總是收到消息Program.exe已停止工作。我正在使用Windows。 我安裝了MinGW。opengl glut停止工作

#ifdef __APPLE__ 
#include <GLUT/glut.h> 
#else 
#include <GL/glut.h> 
#endif 


void displayCall() { 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    glEnable(GL_DEPTH_TEST); 

    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    glOrtho(-2.0, 2.0, -2.0, 2.0, -2.0, 500.0); 

    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 
    gluLookAt(2, 2, 2, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); 
    glScalef(.005,.005,.005); 
    glRotatef(20, 0, 1, 0); 
    glRotatef(30, 0, 0, 1); 
    glRotatef(5, 1, 0, 0); 
    glTranslatef(-300, 0, 0); 

    glColor3f(1,1,1); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'H'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'e'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'l'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'l'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'o'); 

    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'W'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'o'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'r'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'l'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, 'd'); 
    glutStrokeCharacter(GLUT_STROKE_ROMAN, '!'); 

    glutSwapBuffers(); 
} 
int main(int argc, char *argv[]) { 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); 
    glutInitWindowSize(500, 500); 
    glutInitWindowPosition(300, 200); 
    glutCreateWindow("Hello World!"); 
    glutDisplayFunc(displayCall); 
    glutMainLoop(); 
    return 0; 
} 

我複製要將glut32.dll在C:\ windows \ system32目錄,glut.h在文件夾C:\ MinGW的\包括\ GL和用C libglut32.a:\ MinGW的\ lib中。我設置在eclipse項目 - >屬性 - > c/C++生成 - >設置 - > MinGw C++鏈接器 - >庫(添加):glut32,glu32,opengl32。我不知道它爲什麼會崩潰。

回答

0

你的代碼編譯得很好。它也執行OK,所以它不是一個編碼問題,只是一個庫設置問題。在有必要的庫安裝Linux我使用

gcc -o hello_world_glut hello_world_glut.c -lGL -lglut -lGLU 

保證您正在尋找在Eclipse中的控制檯窗口我使用Windows錯誤

+0

編譯代碼。我在控制檯中沒有錯誤/警告。 – wbohd 2015-02-11 23:32:04

+0

我不使用Windows,但是它最好不要將DLL文件複製到操作系統(操作系統)目錄中......而是告訴eclipse到達API庫的路徑,然後列出所需的庫... eclipse右鍵單擊你的項目然後屬性> C/C++常規>路徑和符號>庫...然後添加每個庫在GL glut GLU ....然後選項卡包括添加您的頭文件.h文件居住的地方 – 2015-02-11 23:47:50