Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Was mache ich falsch???

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.04.2003
    Beiträge
    29

    Question Was mache ich falsch???

    Tach

    Wenn ich folgendes Programm kompillieren will:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    #include <GL/glut.h>
    
    void DrawScene(void)
    {
    	//Hintergrundfarbe setzen (dunkles Rot)
     glClearColor (0.5, 0.0, 0.0, 0.0);
     glClear(GL_COLOR_BUFFER_BIT);
    
     // Farbe des 5-Ecks setzen, (blau)
     glColor3f(0.0, 0.1, 1.0);
    
    	//Polygonzug des 5-Ecks
    	glBegin(GL_POLYGON);
    		glVertex2f(-0.5, -0.5);
    		glVertex2f(-0.5,  0.5);
    		glVertex2f( 0.5,  0.5);
    		glVertex2f( 0.8,  0.0);
    		glVertex2f( 0.5, -0.5);
    	glEnd();
    
    	//vorangehende GL-Befehle zeichnen
    	glFlush();
    }
    
    
    int main(int argc, char *argv[])
    {
    	//GLUT initialisieren, Fenster setzen
     glutInit(&argc, argv);
     glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
     glutInitWindowSize (500, 500);
     glutInitWindowPosition (100, 100);
     glutCreateWindow (argv[0]);
    
    
    
    	// Callback-Funktion zum Zeichnen des GL-Objektes setzen
     glutDisplayFunc(DrawScene);
    	// Hauptschleife
     glutMainLoop();
    
     return EXIT_SUCCESS;
    }
    kommt immer folgender Fehler:
    main.cpp: In function `int main(int, char**)':
    main.cpp:33: error: invalid conversion from `int' to `int*'
    Was ist in dem code falsch??? ICh hab schon n bisschen rumprobiert, aber nix hat geklappt!

  2. #2
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    hi,

    aus deinem code kann ich nicht sehen, welche zeile 33 ist( wegen deiner leerzeilen ), nehme aber an das du diese zeile meinst:

    Code:
     glutInit(&argc, argv);
    hast du es mal ohne & vor dem argc probiert?

  3. #3
    Registrierter Benutzer
    Registriert seit
    15.04.2003
    Beiträge
    29
    Hab ich, dann kommt das gleiche

  4. #4
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    verstehe ich nicht.. also wie du argv uebergibst stimmt es.

    versuche mal
    Code:
    initGlut( *argc,argv );
    edit: schwachsinnsidee.. duerfte eigentlich nicht klappen

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Hmm, der ursprüngliche Code sieht ansich korrekt aus.

    Probier mal argc zwischen zu speichern

    Code:
    int main(int argc, char* argv[])
    {
        int c = argc;
        glutInit(&c, argv);
    }
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    Registrierter Benutzer
    Registriert seit
    15.04.2003
    Beiträge
    29
    Dann kommt das:

    /tmp/cc4IEmVG.o(.text+0x12): In function `DrawScene()':
    : undefined reference to `glClearColor'
    /tmp/cc4IEmVG.o(.text+0x22): In function `DrawScene()':
    : undefined reference to `glClear'
    /tmp/cc4IEmVG.o(.text+0x39): In function `DrawScene()':
    : undefined reference to `glColor3f'
    /tmp/cc4IEmVG.o(.text+0x46): In function `DrawScene()':
    : undefined reference to `glBegin'
    /tmp/cc4IEmVG.o(.text+0x5b): In function `DrawScene()':
    : undefined reference to `glVertex2f'
    /tmp/cc4IEmVG.o(.text+0x70): In function `DrawScene()':
    : undefined reference to `glVertex2f'
    /tmp/cc4IEmVG.o(.text+0x85): In function `DrawScene()':
    : undefined reference to `glVertex2f'
    /tmp/cc4IEmVG.o(.text+0x97): In function `DrawScene()':
    : undefined reference to `glVertex2f'
    /tmp/cc4IEmVG.o(.text+0xac): In function `DrawScene()':
    : undefined reference to `glVertex2f'
    /tmp/cc4IEmVG.o(.text+0xb4): In function `DrawScene()':
    : undefined reference to `glEnd'
    /tmp/cc4IEmVG.o(.text+0xb9): In function `DrawScene()':
    : undefined reference to `glFlush'
    /tmp/cc4IEmVG.o(.text+0xe1): In function `main':
    : undefined reference to `glutInit'
    /tmp/cc4IEmVG.o(.text+0xee): In function `main':
    : undefined reference to `glutInitDisplayMode'
    /tmp/cc4IEmVG.o(.text+0x103): In function `main':
    : undefined reference to `glutInitWindowSize'
    /tmp/cc4IEmVG.o(.text+0x112): In function `main':
    : undefined reference to `glutInitWindowPosition'
    /tmp/cc4IEmVG.o(.text+0x122): In function `main':
    : undefined reference to `glutCreateWindow'
    /tmp/cc4IEmVG.o(.text+0x132): In function `main':
    : undefined reference to `glutDisplayFunc'
    /tmp/cc4IEmVG.o(.text+0x13a): In function `main':
    : undefined reference to `glutMainLoop'
    Gruß
    Avirell

  7. #7
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    das hoert sich nach einer falschen compileanweisung an.
    mit welchen libs laesst du es kompilieren? paste mal

  8. #8
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    "undefined reference" ist ein Linkerfehler

    Wahrscheinlich vergessen gegen glut zu linken

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  9. #9
    Registrierter Benutzer
    Registriert seit
    15.04.2003
    Beiträge
    29
    ähm...
    Könntet ihr das mit dem linken mal genauer erklären? Irgendwie versteh ich das nicht ganz... wie "gegen glut linken"?
    Hab davon noch nicht ganz soviel ahnung, da ich erst seit relativ kurzer Zeit programmiere...
    Gruß
    Avirell

  10. #10
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Den GL Code von oben wirst du ja nicht aus dem Hut gezauert haben

    In einem Tutorial steht normalerweise auch, wie der Compileraufruf auszusehen hat.

    Ich schätze du musst mit libGL und libglut linken

    #> gcc -o program source.c -lglut -lGL

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  11. #11
    Registrierter Benutzer
    Registriert seit
    15.04.2003
    Beiträge
    29
    Achsoooooo
    Ich zitiere mal das Tut:

    gcc -I. -c HelloOpenGL.c

    gcc -o HelloOpenGL HelloOpenGL.o \
    -IGL -Iglut -IGLU
    Was davon muss ich jetzt eingeben?
    Gruß
    Avirell

  12. #12
    Registrierter Benutzer Avatar von tuxipuxi
    Registriert seit
    30.08.2002
    Beiträge
    667
    hi,

    also stueck fuer stueck:

    gcc ist ja der aufruf des c-compilers.

    als naechstes gibst du dein gewuenschen outputname an:

    -o HelloOpenGl

    dann deine sourcedateien:

    HelloOpenGl.c

    dann musst du dem compiler verraten wo deine headerdateien liegen

    -I/usr/X11R6/include

    und dann noch gegen die libs linken

    -lGL -lglut

    die reihenfolge muss nicht eingehalten werden.

    also gcc -o HelloOpenGl HelloOpenGl.c -I/usr/X11R6/include -lGL -lglut

    gruss,

    tuxipuxi.

  13. #13
    Registrierter Benutzer
    Registriert seit
    15.04.2003
    Beiträge
    29
    Jetzt funktionierts, vielen Dank!
    Gruß
    Avirell

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •