linkerprobleme mit devc++ bei der benutzung von grafikbibliotheken
-
Hi,
ich benutze seit kurzem den devc++ 4.9.9.0 compiler und seine entwicklungsumgebung. Nun möchte ich gerne grafikbibliotheken(opengl) verwenden. Dazu habe ich die libs(glut.lib, glaux.lib, glu32.lib, glut32.lib) und die header-dateien(glut.h, glu.h, glaux.h, gl.h) in die entsprechenden ordner von devc++ kopiert. Dann habe ich noch unter den projektoptionen unter parameter die bibliotheken der linkerliste hinzugefühgt.
Verwende ich jetzt allerdings entsprechende grafikfunktionen die unten aufgelisteten linkerfehler auf.#include <iostream> #include <stdlib.h> #include <string> #include <GL/glut.h> #include <GL/glu.h> #include <GL/glaux.h> #include <GL/gl.h> using namespace std; bool InitGL() { int width = 800; int height = 600; glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective( 45.0f, (GLfloat) width / (GLfloat) height, 1.0f, 1000.0f); glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); glEnable(GL_TEXTURE_2D); glShadeModel(GL_SMOOTH); glClearColor(0.0f, 0.0f, 0.0f, 0.5f); glClearDepth(1.0f); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); return true; }Linkerfehler:
[Linker error] undefined reference to
glMatrixMode@4' [Linker error] undefined reference toglLoadIdentity@0'
[Linker error] undefined reference togluPerspective@32' [Linker error] undefined reference toglMatrixMode@4'
[Linker error] undefined reference to `glLoadIdentity@0'
//etc...
C:\Programme\Dev-Cpp\Eigene Projekte\Makefile.win [Build Error] [Projekt1.exe] Error 1Was muss ich machen um diese fehler zu beheben?
Gruß crabbe
-
[edit] war mist, nicht richtig gelesen [/edit]
-
Steht in den Linkeroptionen wirklich -lOpenGL32 ?
-
Die Referenzen zu den Symbolen sollten aufgelöst werden.
Bye, TGGC (Dem beste BdT)
-
Könnte mich irren aber hat opengl nicht ein c api ?
Du compilierst aber c++.
wenn dem so ist sollte#include <iostream> #include <stdlib.h> #include <string> extern "C" { #include <GL/glut.h> #include <GL/glu.h> #include <GL/glaux.h> #include <GL/gl.h> } using namespace std; ....Abhilfe schaffen
Kurt
-
@zuk
ist nicht nötig das die header schon entsprechend darauf reagieren wenn sie
von cpp dateien includiert werden.die antwort hat doch YASC schon gegeben. die lib müssen hinzu gelinkt werden.
-
Hi,
YASC schrieb:
Steht in den Linkeroptionen wirklich -lOpenGL32 ?
ja, ich bin bei den projektoptionen auf "Bibliothek/Objekt hinzufühgen" gegangen und habe die entsprechenden libs(auch opengl32.lib) der linkerliste hinzugefühgt.
miller_m schrieb:
die lib müssen hinzu gelinkt werden.
Das habe ich doch schon gemacht oder muss ich dies direkt im code tun?(kann ich mir nicht vorstellen)
Gruß Crabbe
-
öhm.. kommt der mingw wirklich mit dem .lib-format klar? bei meiner installation gibts nur .a (also archieve mit mehreren .o drin). des weiteren scheint DevC++ nicht so ganz damit klar zu kommen (war mein eindruck beim testen), wenn man die libs in die liste einfügt. normalerweise mache ich das über die zusätzlichen kommandozeilenparameter ( also mit -lmeinetollelib)
geloescht
PS: beim installieren von zusätzlichen libs bei DevC++ bevorzuge ich, DevPacks zu benutzen. Die sind sehr komfortabel, wenn auch oft nicht in der neuesten Version zu bekommen. Ein paar kriegt man über das integrierte Updatetool.
-
Crabbe schrieb:
miller_m schrieb:
die lib müssen hinzu gelinkt werden.
Das habe ich doch schon gemacht
Entweder du lügst, oder die Libs definieren die geforderten Symbole nicht.
Bye, TGGC (Dem beste BdT)
-
geloescht schrieb:
öhm.. kommt der mingw wirklich mit dem .lib-format klar? bei meiner installation gibts nur .a (also archieve mit mehreren .o drin). des weiteren scheint DevC++ nicht so ganz damit klar zu kommen (war mein eindruck beim testen), wenn man die libs in die liste einfügt.
geht schon mit den entsprechenden header und ein paar zusatz export angaben
beim erstellen der lib. vermute aber mal das dieses nicht gemacht wurde.@crabbe
ich würde die libs und die header löschen die du kopiert hast und die bestehenden von mingw benutzen.
sprich wie schon ein paar mal gesagt
-lopemgl32
-lglu32
usw usw
und benutz generell libs und header die für deinen compiler sind bzw. schon dabei sind.
-
ok hab jetzt die passenden libs für den compiler heruntergeladen und es funktioniert einwandfrei. Danke noch einmal für eure antworten.
Gruß Crabbe