opengl unter linux compilieren ?



  • hmm, jetz hat er zwar die header gefunden, leider findet er die richtigen funktionen nicht 😕

    oom@workstation2:~/c/opengl$
    doom@workstation2:~/c/opengl$ gcc -I/usr/X11R6/include/ opengl1.c -o open1
    /tmp/cc0GHVoV.o(.text+0xf): In function `display':
    : undefined reference to `glClear'
    /tmp/cc0GHVoV.o(.text+0x24): In function `display':
    : undefined reference to `glPolygonMode'
    /tmp/cc0GHVoV.o(.text+0x39): In function `display':
    : undefined reference to `glPolygonMode'
    /tmp/cc0GHVoV.o(.text+0x41): In function `display':
    : undefined reference to `glLoadIdentity'
    /tmp/cc0GHVoV.o(.text+0xb5): In function `display':
    : undefined reference to `gluLookAt'
    /tmp/cc0GHVoV.o(.text+0xd5): In function `display':
    : undefined reference to `glColor4f'
    /tmp/cc0GHVoV.o(.text+0xe2): In function `display':
    : undefined reference to `glBegin'
    /tmp/cc0GHVoV.o(.text+0xff): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x11c): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x139): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x156): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x15e): In function `display':
    : undefined reference to `glEnd'
    /tmp/cc0GHVoV.o(.text+0x18a): In function `display':
    : undefined reference to `glTranslate'
    /tmp/cc0GHVoV.o(.text+0x197): In function `display':
    : undefined reference to `glBegin'
    /tmp/cc0GHVoV.o(.text+0x1b4): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x1d1): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x1ee): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x20b): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x228): In function `display':
    : undefined reference to `glVertex3f'
    /tmp/cc0GHVoV.o(.text+0x245): more undefined references to `glVertex3f' follow
    /tmp/cc0GHVoV.o(.text+0x24d): In function `display':
    : undefined reference to `glEnd'
    /tmp/cc0GHVoV.o(.text+0x267): In function `display':
    : undefined reference to `glTranslatef'
    /tmp/cc0GHVoV.o(.text+0x27f): In function `display':
    : undefined reference to `glutWireSphere'
    /tmp/cc0GHVoV.o(.text+0x287): In function `display':
    : undefined reference to `glFlush'
    /tmp/cc0GHVoV.o(.text+0x2a8): In function `main':
    : undefined reference to `glutInit'
    /tmp/cc0GHVoV.o(.text+0x2bd): In function `main':
    : undefined reference to `glutInitWindowSize'
    /tmp/cc0GHVoV.o(.text+0x2cc): In function `main':
    : undefined reference to `glutInitWindowPosition'
    /tmp/cc0GHVoV.o(.text+0x2dc): In function `main':
    : undefined reference to `glutCreatWindow'
    /tmp/cc0GHVoV.o(.text+0x2ec): In function `main':
    : undefined reference to `glutDisplayFunc'
    /tmp/cc0GHVoV.o(.text+0x30c): In function `main':
    : undefined reference to `glClearColor'
    /tmp/cc0GHVoV.o(.text+0x31c): In function `main':
    : undefined reference to `glMatrixMode'
    /tmp/cc0GHVoV.o(.text+0x324): In function `main':
    : undefined reference to `glLoadIdentity'
    /tmp/cc0GHVoV.o(.text+0x359): In function `main':
    : undefined reference to `gluPerpective'
    /tmp/cc0GHVoV.o(.text+0x369): In function `main':
    : undefined reference to `glMatrixMode'
    /tmp/cc0GHVoV.o(.text+0x371): In function `main':
    : undefined reference to `gluMainLoop'
    collect2: ld returned 1 exit status
    doom@workstation2:~/c/opengl$
    

    mein source:

    #include <GL/gl.h>                                      //opengl
    #include <GL/glu.h>                             //opengl ulitiy
    #include <GL/glut.h>                            //opengl ulitiy toolkit
    
    void display() {
            glClear(GL_COLOR_BUFFER_BIT);           //löscht erstmal alle farbinformationen
            glPolygonMode(GL_FRONT,GL_FILL);        //zeichen der sichtbaren objekte
            glPolygonMode(GL_BACK,GL_LINE);         //zeichnen der verdeckten oobjekte
            glLoadIdentity();
            gluLookAt(0.0,10.0,10.0                 //position des boebachters
                            ,0.0,0.0,0.0                    //worauf zentriert ?
                                    ,0.0,1.0,0.0);  //vektor nach oben
            glColor4f(1.0,0.0,0.0,1.0);             //rot mit transparentz
    
            glBegin(GL_LINES);
                    glVertex3f(0.0,0.0,0.0);
                    glVertex3f(1.0,0.0,0.0);
                    glVertex3f(0.0,0.0,0.0);
                    glVertex3f(0.0,0.0,1.0);
            glEnd();
    
            glTranslate(0.0,0.0,2.0);
    
            glBegin(GL_TRIANGLES);
                    glVertex3f( 0.0, 0.0, 0.0);
                    glVertex3f( 1.0, 1.0, 0.0);
                    glVertex3f(-1.0, 1.0, 0.0);
                    glVertex3f( 0.0,  0.0, 0.0);
                    glVertex3f( 1.0, -1.0, 0.0);
                    glVertex3f(-1.0, -1.0, 0.0);
            glEnd();
    
            glTranslatef(0.0,0.0,-7.0);
            glutWireSphere(1.0,16,16);
    
            glFlush();
    }
    
    int main(int argc, char**argv) {
            glutInit(&argc,argv);                   //initialisierung
            glutInitWindowSize(300,300);            //fenstergroese
            glutInitWindowPosition(0,0);            //fensterpostion
            glutCreatWindow("tut 1 mit opengl");    //name des fensters
    
            glutDisplayFunc(display);               //zeigt auf funktion display
            glClearColor(0.0,0.0,0.0,0.0);          //es soll mit schwarz gelöscht werden
    
            glMatrixMode(GL_PROJECTION);
            glLoadIdentity();
            gluPerpective(45.0,1.0,1.0,100.0);
    
            glMatrixMode(GL_MODELVIEW);
            gluMainLoop();
    
            return 0;
    }
    


  • doom@workstation2:~/c/opengl$ gcc -I/usr/X11R6/include/  -lGL  opengl1.c -o open1
    /tmp/ccf4UrYo.o(.text+0xb5): In function `display':
    : undefined reference to `gluLookAt'
    /tmp/ccf4UrYo.o(.text+0x18a): In function `display':
    : undefined reference to `glTranslate'
    /tmp/ccf4UrYo.o(.text+0x27f): In function `display':
    : undefined reference to `glutWireSphere'
    /tmp/ccf4UrYo.o(.text+0x2a8): In function `main':
    : undefined reference to `glutInit'
    /tmp/ccf4UrYo.o(.text+0x2bd): In function `main':
    : undefined reference to `glutInitWindowSize'
    /tmp/ccf4UrYo.o(.text+0x2cc): In function `main':
    : undefined reference to `glutInitWindowPosition'
    /tmp/ccf4UrYo.o(.text+0x2dc): In function `main':
    : undefined reference to `glutCreatWindow'
    /tmp/ccf4UrYo.o(.text+0x2ec): In function `main':
    : undefined reference to `glutDisplayFunc'
    /tmp/ccf4UrYo.o(.text+0x359): In function `main':
    : undefined reference to `gluPerpective'
    /tmp/ccf4UrYo.o(.text+0x371): In function `main':
    : undefined reference to `gluMainLoop'
    collect2: ld returned 1 exit status
    doom@workstation2:~/c/opengl$
    

    kk, mit linken wird das schon eher was ^^
    allerdings gibt es kein -l glu oder so ... das findet er nich ... wie kann ich die definition von z.b. der funktion wie gluMainLoop dem compilier beibringen ?



  • mal ganz allgemein, wo finde ich ne liste von den linker files ?
    wieso ?
    damit ich weis, wie sie heißen, damit ich sie richtig einbinden kann ^^



  • hast du mal
    glut32 versucht ?



  • -lGLU, vielleicht auch lglut, kommt drauf an, welche implementation du hast.

    kannst mal nachgucken, die sollten unter /usr/lib liegen. libGL* libgl*


Anmelden zum Antworten