000
03.03.2005, 23:08 Uhr
henning
|
Moin,
ich habe ein Problem mit QT und OpenGL. Habe vor einem Jahr einen Editor fuer Splines geschrieben (mit KDevelop2 und QT3), der auch einwandfrei funktioniert und vor allen Dingen kompiliert hat. Habe jetzt die Sourcen nochmal rausgeholt und bekomme das Projekt nicht mehr auf meinem aktuellen Debian System kompiliert. Benutzt wird libqt3c102 3.3.3-8, mesa3d 4.3.0 und gcc 3.4. Alle Klassen includen qgl.h.
Der Linker wirft mir aber als Fehler aus:
globjwin.o(.text+0x1532): In function `GLObjectWindow::GLObjectWindow[not-in-charge](QWidget*, char const*)': : undefined reference to `glGenLists' globjwin.o(.text+0x2ad2): In function `GLObjectWindow::GLObjectWindow[in-charge](QWidget*, char const*)': : undefined reference to `glGenLists' globjwin.o(.text+0x326b): In function `GLObjectWindow::slotUpdateView()': : undefined reference to `glNewList'
.... insgesamt wird jede Verwendung von gl* angemeckert.
Habe bereits folgende Schritte durchgefuehrt, allerdings ohne Erfolg:
- Neues QMake Projekt gemacht und die alten Sourcen darin importiert - Den NVIDIA Binary Driver entfernt und auf Software Rendering umgestellt - Ueberprueft, um die Redbook Beispiele aus den mesatools kompilieren (tun sie) - Habe eine Version von qt3 mit gelinkter opengl Library gebaut und die verwendet (so dass er nicht per dopen() nachladen muss) - Mein fertiges Paket von damals per ./configure ; make nochmal kompiliert (geht auch nicht)
Ich verstehe vor allen Dingen nicht, warum der Fehler erst beim Linken kommt. Das heisst doch, dass er zwar in den Include Dateien alle Methoden gefunden hat, aber in den dazugehoerigen Libs nicht, oder? Das wuerde aber heissen, dass die Include Dateien nicht konsistent mit den Libraries sind, aber wie kann das sein?
Wie kann ich jetzt weiter vorgehen, um den Fehler einzugrenzen? Habe mal mit strace geschaut, ob er waehrend des libtool Laufs ueberhaupt die libGL oeffnet - und in der Tat, sie wird geoeffnet. Wahrscheinlich fehlt nur irgendein Symlink o.ae., aber welcher?
Fuer jeden Tip dankbar.
so long Henning |