Eine Bibliothek erstellen, 'undefined reference'
-
Hallo Leute

Ich versuche gerade einzelne Befehle in eine Library (Name.a) auszulagern.
Ich erstelle also ein neues Projekt (Dev-C++) und füge eine Header und eine Cpp-Datei zu.
In der Header Datei include ich auch die gebrauchten OpenGl-Header:
#ifndef TWODENGINE_H #define TWODENGINE_H // OpenGL Headers #include <gl\gl.h> #include <gl\glaux.h> #include <iostream> #include <windows.h> #include <stdio.h> #include <time.h> GLuint LoadTexture(const char *filename); #endifOb ich Kommandozeilen-Parameter angebe oder nicht, die datei 2DEngine.a wird immer ohne Fehler erstellt. Ist doch eigentlich komisch, da der Befehl LoadTexture auch OpenGL und Glaux Befehle braucht, oder? Aber egal ob ich die Libraries einbinde oder nicht, es klappt ohne Fehler.
So jetzt mein eigentliches Spiel, Spiel.cpp:
#include <iostream> #include <windows.h> #include <stdio.h> #include <time.h> // OpenGL Headers #include <gl\gl.h> #include <gl\glaux.h> #include <2DEngine.h> ... LoadTexture ("test.bmp"); ...Und bei dieser Datei habe ich natürlich alle OpenGL-Libraries gelinkt. Wenn ich jetzt aber das ganze kompilieren will, bekomme ich folgende Fehler:
g++.exe schrieb:
g++.exe test.o -o "Spiel OpenGL.exe" -L"C:/DevCpp/lib" -mwindows -lopengl32 -lglu32 -lglaux -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32 ../2DEngine/2DEngine.a
../2DEngine/2DEngine.a(2DEngine.o)(.text+0x31):2DEngine.cpp: undefined reference to
auxDIBImageLoadA@4' ../2DEngine/2DEngine.a(2DEngine.o)(.text+0x45):2DEngine.cpp: undefined reference toglGenTextures@8'
../2DEngine/2DEngine.a(2DEngine.o)(.text+0x74):2DEngine.cpp: undefined reference toglTexImage2D@36' ../2DEngine/2DEngine.a(2DEngine.o)(.text+0x88):2DEngine.cpp: undefined reference toglTexParameteri@12'
../2DEngine/2DEngine.a(2DEngine.o)(.text+0x9c):2DEngine.cpp: undefined reference to `glTexParameteri@12'
collect2: ld returned 1 exit statusmake.exe: *** ["Spiel] Error 1
Ausführung beendet
Warum bekomm ich es nie hin Libraries zu erstellen?? Es ist egal ob ich die 2DEngine mit den ganzen OpenGL Libraries zusammenlinke oder nicht, immer diese Fehler.
Was mach ich falsch??
-fnord23
-
Achso, bei den Projekt-Optionen habe ich den Typ 'Win32 statische Bibliothek' ausgewählt.
- fnord
-
bittebitte
kann mir keiner Helfen?
-
Heißt der Parameter nicht -I und nicht -L ?
-
Bei statischen Libraries kommt es (leider) auf die Reihenfolge an. Libs können nur auf die Symbole von später angegebenen Libs zugreifen, nicht auf die davor.
-
dankeschön, es scheint zu funktionieren
