Qt4/OpenGL Problem

Alles rund um die Programmierung mit Qt
Antworten
tsluga
Beiträge: 16
Registriert: 25. Januar 2006 02:15

Qt4/OpenGL Problem

Beitrag von tsluga »

Hallo,

ich wollte mal meine OpenGL Sachen mit QT kombinieren, was jedoch nicht will. Ich habe es mal mit den Beispielen aus der Doku versucht, was aber auch nicht geht, ich bekomme nur solche Meldungen :

nach einem make kommt :
g++ -o roboter borderlayout.o main.o mainframe.o roboter.o moc_roboter.o -L/usr/lib -lQtGui_debug -lQtCore_debug -lpthread
/usr/bin/ld: warning: libstdc++.so.6, needed by /usr/lib/libQtGui_debug.so, may conflict with libstdc++.so.5
main.o(.gnu.linkonce.t._ZN7RoboterD1Ev+0x22): In function `Roboter::~Roboter [in-charge]()':
/home/tsluga/workspace/graphik_II/roboter/main.cpp:6: undefined reference to `QGLWidget::~QGLWidget [not-in-charge]()'
roboter.o(.text+0x37): In function `Roboter::Roboter[not-in-charge](QWidget*)':
/usr/include/qt4/QtCore/qglobal.h:744: undefined reference to `QGLWidget::QGLWidget[not-in-charge](QWidget*, QGLWidget const*, QFlags<Qt::WindowType>)'
roboter.o(.text+0x75): In function `Roboter::Roboter[not-in-charge](QWidget*)':
/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:7: undefined reference to `QGLWidget::~QGLWidget [not-in-charge]()'
roboter.o(.text+0xc5): In function `Roboter::Roboter[in-charge](QWidget*)':
/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:5: undefined reference to `QGLWidget::QGLWidget[not-in-charge](QWidget*, QGLWidget const*, QFlags<Qt::WindowType>)'
roboter.o(.text+0x103):/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:7: undefined reference to `QGLWidget::~QGLWidget [not-in-charge]()'
roboter.o(.text+0x130): In function `Roboter::paintGL()':
/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:16: undefined reference to `glClear'
roboter.o(.text+0x135):/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:18: undefined reference to `glFlush'
roboter.o(.text+0x19d): In function `Roboter::resizeGL(int, int)':
/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:24: undefined reference to `glViewport'
roboter.o(.text+0x1a9):/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:25: undefined reference to `glMatrixMode'
roboter.o(.text+0x1ae):/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:26: undefined reference to `glLoadIdentity'
roboter.o(.text+0x1e6):/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:27: undefined reference to `glFrustum'
roboter.o(.text+0x1f2):/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:28: undefined reference to `glMatrixMode'
roboter.o(.text+0x1f7):/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:29: undefined reference to `glLoadIdentity'
roboter.o(.text+0x211):/home/tsluga/workspace/graphik_II/roboter/roboter.cpp:30: undefined reference to `glTranslated'
moc_roboter.o(.text+0x4c): In function `Roboter::qt_metacast(char const*)':
/usr/include/qt4/QtCore/qlist.h:492: undefined reference to `QGLWidget::qt_metacast(char const*)'
moc_roboter.o(.text+0x7a): In function `Roboter::qt_metacall(QMetaObject::Call, int, void**)':
/home/tsluga/workspace/graphik_II/roboter/moc_roboter.cpp:56: undefined reference to `QGLWidget::qt_metacall(QMetaObject::Call, int, void**)'
moc_roboter.o(.rodata+0x0): undefined reference to `QGLWidget::staticMetaObject'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0x1c):/home/tsluga/workspace/graphik_II/roboter/moc_roboter.cpp:48: undefined reference to `QGLWidget::event(QEvent*)'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0x4c):/usr/include/qt4/QtCore/qlist.h:492: undefined reference to `QGLWidget::paintEngine() const'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0x7c):/home/tsluga/workspace/graphik_II/roboter/moc_roboter.cpp:56: undefined reference to `QGLWidget::paintEvent(QPaintEvent*)'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0x84):/home/tsluga/workspace/graphik_II/roboter/moc_roboter.cpp:57: undefined reference to `QGLWidget::resizeEvent(QResizeEvent*)'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0xe0): undefined reference to `QGLWidget::updateGL()'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0xe4): undefined reference to `QGLWidget::updateOverlayGL()'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0xf4): undefined reference to `QGLWidget::initializeOverlayGL()'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0xf8): undefined reference to `QGLWidget::resizeOverlayGL(int, int)'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0xfc): undefined reference to `QGLWidget::paintOverlayGL()'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0x100): undefined reference to `QGLWidget::glInit()'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0x104): undefined reference to `QGLWidget::glDraw()'
moc_roboter.o(.gnu.linkonce.r._ZTV7Roboter+0x11c): undefined reference to `non-virtual thunk [nv:-8] to QGLWidget::paintEngine() const'
moc_roboter.o(.gnu.linkonce.t._ZN7RoboterD0Ev+0x22): In function `Roboter::~Roboter [in-charge deleting]()':
/home/tsluga/workspace/graphik_II/roboter/moc_roboter.cpp:49: undefined reference to `QGLWidget::~QGLWidget [not-in-charge]()'
moc_roboter.o(.gnu.linkonce.r._ZTI7Roboter+0x8):/home/tsluga/workspace/graphik_II/roboter/moc_roboter.cpp:44: undefined reference to `typeinfo for QGLWidget'
collect2: ld returned 1 exit status
make: *** [roboter] Fehler 1
Weiß einer weiter ?

Ohne OpenGL Sachen, also ein einfaches Fenster & Co. geht problemlos.
Skype-User : tsluga
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Eventuell fehlt Dir 'CONFIG += opengl' ?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
tsluga
Beiträge: 16
Registriert: 25. Januar 2006 02:15

Beitrag von tsluga »

Gefehlt hat ein -lQtOpenGL in der Makefile.

Jetzt habe ich folgendes Problem ( Debian sarge )

Wenn ich eine Awendung mit QtOpenGL starte, friert mir die Kiste ein.
Ich habe mal die Mesa Sachen installiert, dann läuft es wieder, bei der Installation von Mesa wird mir wieder QT deinstalliert :roll: . Weiß einer wie ich aus diesem Dilema rauskomme ?
Skype-User : tsluga
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

tsluga hat geschrieben:Gefehlt hat ein -lQtOpenGL in der Makefile.
Das ist ja genau dass, was CONFIG +=opengl einfügt :roll:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Qt per Hand übersetzen:)
Aber Mensa würde ich nicht einsetzten.
Das dein Rechner einfriert, dürfte auf ein Problem mit dem GK Treiber hinweisen. Hast du mal mal versucht, wenn du glxgears startest? (Das ist ein nettes Teil zum testen von OpenGL)
Antworten