Qt4/OpenGL Problem

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
arkadius
Beiträge: 31
Registriert: 17.02.2005 23:54:12

Qt4/OpenGL Problem

Beitrag von arkadius » 03.04.2006 01:27:30

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.

Benutzeravatar
bse
Beiträge: 468
Registriert: 19.03.2006 19:58:00
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von bse » 03.04.2006 14:12:29

da fehlt wohl ein -lGL oder ähnliches

Benutzeravatar
Linuxpeter
Beiträge: 236
Registriert: 26.04.2005 22:48:56
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Dresden

Beitrag von Linuxpeter » 03.04.2006 16:35:46

Vermutlich

Code: Alles auswählen

-lQtOpenGL
bzw.

Code: Alles auswählen

-lQtOpenGL_debug

luratz
Beiträge: 12
Registriert: 03.04.2006 16:24:33

Beitrag von luratz » 03.04.2006 18:24:13

ne weil der torvalds den finger im arsch hatte als der programmieren sollte

arkadius
Beiträge: 31
Registriert: 17.02.2005 23:54:12

Beitrag von arkadius » 04.04.2006 00:09:56

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 ?

Benutzeravatar
DeltaLima
Beiträge: 578
Registriert: 13.01.2006 15:15:02
Kontaktdaten:

Beitrag von DeltaLima » 06.04.2006 12:43:18

mal ganz neben dem Topic aber

@luratz

Typisch Windows User . :evil:

Antworten