2016-11-21 72 views
0

嗨,大家好最近'學習opengl的基礎知識.. 所以不瞭解他們我試圖寫我的第一個程序。一開始,我嘗試使用允許爲繪圖調用創建緩衝區的函數。但鏈接器告訴我,這些函數是未聲明的。所以我嘗試與舊的(我想也許我錯了),它的作品。 所以我的代碼是與生俱來的glGenBuffers和所有的GL *函數以下OpenGl錯誤鏈接

#include <GL/glut.h> 
    #include <GL/glext.h> 

    #include <GL/gl.h> 
    #include <stdlib.h> 
    #include <stdio.h> 


    void reshape(int, int); 
    void display(void); 
    void keyboard(unsigned char, int, int); 


    int main(int argc, char** argv) 
    { 
     glutInit(&argc, argv); 
     glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); 
     glutInitWindowSize(500,500); 
     glutInitWindowPosition (100, 100); 
     glutCreateWindow(argv[0]); 
     glClearColor(0.0,0.0,0.0,0.0); 
     glShadeModel(GL_FLAT); 
     glutDisplayFunc(display); 
     glutReshapeFunc(reshape); 
     glutKeyboardFunc(keyboard); 
     glutMainLoop(); 
     return 0; 
    } 

    void reshape(int w, int h) 
    { 
    glViewport(0,0,(GLsizei) w, (GLsizei) h); 

    } 

    void display(void) 
    { 
     glMatrixMode(GL_PROJECTION); 
     glLoadIdentity(); 
     GLuint* i; 
     glGenBuffers(1,i); 

     glClear(GL_COLOR_BUFFER_BIT); 

     glBegin(GL_TRIANGLES); 
       glColor3f(1.0f,1.00f,1.0f);   
       glVertex3f(0.5f, 0.0f, 0.0f);  
       glVertex3f(-0.5f,0.5f, 0.0f);  
       glVertex3f(0.0f,-0.5f, 0.0f);  
      glEnd(); 
     glBegin(GL_TRIANGLES); 
       glColor3f(1.0f,1.00f,1.0f);   
       glVertex3f(-0.5f, 0.0f, 0.0f);  
       glVertex3f(0.5f,0.5f, 0.0f);   
       glVertex3f(0.0f,-0.5f, 0.0f);  
      glEnd(); 
      //glutWireCube(10); 
      glFlush(); 

    } 

    void keyboard(unsigned char key, int x, int y) 
    { 
    switch(key) { 
    case 'l': 

    break; 
    } 
    } 

問題。 這裏有海灣合作委員會COMMANDE使用

gcc -o cube main.c -lGL -lGLU -lglut 

,這是錯誤

main.c: In function ‘display’: 
main.c:40:3: warning: implicit declaration of function ‘glGenBuffers’ [-Wimplicit-function-declaration] 
    glGenBuffers(1,i); 

對不起我的英語和感謝所有。

+0

什麼操作系統(或發行版),您使用的? – saeleko

+0

Ubuntu的最後一個版本 –

回答

0

你缺少你的代碼

#define GL_GLEXT_PROTOTYPES 

#include <GL/glut.h> 
#include <GL/glext.h> 

#include <GL/gl.h> 
#include <stdlib.h> 
#include <stdio.h> 

它編譯的開頭沒有我的Ubuntu電腦上這樣的警告以下行,看到glGenBuffers not defined?

+0

它的工作非常感謝 –

+0

我會評價你的問題,作爲最好的 –

+0

不客氣,很高興我可以幫助 – saeleko