wir haben dieses Semester Graphische Datenverarbeitung. Unsere Übungen und Praktikas sollen wir mit C++ und OpenGL machen, und das ganze sollte nach Möglichkeit Plattformunabhängig kompilierbar sein. Da haben wir uns gedacht, nehmen wir doch am besten QT OpenSource.
Doch momentan scheitern wir noch daran, ein OpenGL-Hello World zeichnen zu können. Momentan sieht unser Code so aus:
Code: Alles auswählen
#include <QApplication>
#include <QGLWidget>
class MyGLDrawer : public QGLWidget
{
Q_OBJECT // must include this if you use Qt signals/slots
public:
MyGLDrawer(QWidget *parent = 0)
: QGLWidget(parent)
{
;
}
protected:
void initializeGL()
{
// Set up the rendering context, define display lists etc.:
glClearColor(0.0, 0.0, 0.0, 0.0);
glEnable(GL_DEPTH_TEST);
}
void resizeGL(int w, int h)
{
if (h == 0)
h = 1;
float ratio = 1.0* w / h;
// Reset the coordinate system before modifying
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// Set the viewport to be the entire window
glViewport(0, 0, w, h);
// Set the correct perspective.
gluPerspective(45,ratio,1,1000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0,0.0,5.0,
0.0,0.0,-1.0,
0.0f,1.0f,0.0f);
}
void paintGL()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glFlush();
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MyGLDrawer* c = new MyGLDrawer();
c->show();
return app.exec();
}
Code: Alles auswählen
-------------- Build: Debug in QTProject 1 ---------------
Compiling: main.cpp
Linking executable: bin\Debug\QTProject 1.exe
obj\Debug\main.o(.text$_ZN10MyGLDrawerC1EP7QWidget[MyGLDrawer::MyGLDrawer(QWidget*)]+0x41): In function `ZSt17__verify_groupingPKcjRKSs':
C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/locale_facets.tcc:2502: undefined reference to `vtable for MyGLDrawer'
obj\Debug\main.o(.text$_ZN10MyGLDrawerC1EP7QWidget[MyGLDrawer::MyGLDrawer(QWidget*)]+0x4d):C:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/locale_facets.tcc:2502: undefined reference to `vtable for MyGLDrawer'
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 1 seconds)
0 errors, 0 warnings
Wo ist der Fehler warum das nicht funktioniert?
Dankesehr ^^