Russian Qt Forum

Qt => Вопросы новичков => Тема начата: lisyarus от Апрель 11, 2012, 22:07



Название: Проблема с подключением OpenGL
Отправлено: lisyarus от Апрель 11, 2012, 22:07
Совсем недавно начал использовать Qt. Компилирую вызовом qmake -project и потом mingw32-make.
Простые приложения работают, но при попытке подключить QGLWidget или QtOpenGL пишет, что нет такого файла. Решается если написать что-то вроде <QtOpenGL/QGLWidget>, но мне не кажется, что так надо делать. Далее, вот в таком коде:
Код:
#include <QApplication>

#include <QtOpenGL/QtOpenGL>

class Scene : public QGLWidget {
    protected:
   
    public:
        Scene (QWidget *);
};

Scene :: Scene (QWidget * parent) : QGLWidget(parent) { }

int main(int argc, char *argv[]) {
  QApplication Application(argc, argv);

 
  return Application.exec();
}

Выдает ошибки:
Цитировать
C:\Users\      \Desktop\Projects\QtTest/main.cpp:12: undefined reference to `_imp___ZN9QGLWidgetC2EP7QWidgetPKS_6QFlagsIN2Qt10WindowTypeEE'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x8): undefined reference to `QGLWidget::metaObject() const'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0xc): undefined reference to `QGLWidget::qt_metacast(char const*)'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x10): undefined reference to `QGLWidget::qt_metacall(QMetaObject::Call, int, void**)'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x1c): undefined reference to `QGLWidget::event(QEvent*)'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x54): undefined reference to `QGLWidget::paintEngine() const'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x84): undefined reference to `QGLWidget::paintEvent(QPaintEvent*)'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x8c): undefined reference to `QGLWidget::resizeEvent(QResizeEvent*)'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0xe8): undefined reference to `QGLWidget::updateGL()'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0xec): undefined reference to `QGLWidget::updateOverlayGL()'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0xf0): undefined reference to `QGLWidget::initializeGL()'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0xf4): undefined reference to `QGLWidget::resizeGL(int, int)'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0xf8): undefined reference to `QGLWidget::paintGL()'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0xfc): undefined reference to `QGLWidget::initializeOverlayGL()'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x100): undefined reference to `QGLWidget::resizeOverlayGL(int, int)'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x104): undefined reference to `QGLWidget::paintOverlayGL()'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x108): undefined reference to `QGLWidget::glInit()'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x10c): undefined reference to `QGLWidget::glDraw()'
debug/main.o:main.cpp:(.rdata$_ZTV5Scene[vtable for Scene]+0x124): undefined reference to `non-virtual thunk to QGLWidget::paintEngine() const'
debug/main.o: In function `~Scene':
C:\Users\      \Desktop\Projects\QtTest/main.cpp:5: undefined reference to `_imp___ZN9QGLWidgetD2Ev'
collect2:            ld                              1
mingw32-make[1]: *** [debug\QtTest.exe] Error 1
mingw32-make: *** [debug] Error 2
Сборка завершилась с ошибкой.

В чем может быть проблема?


Название: Re: Проблема с подключением OpenGL
Отправлено: Alex Custov от Апрель 11, 2012, 22:17
нужно добавить в pro файл
Код:
QT += opengl


Название: Re: Проблема с подключением OpenGL
Отправлено: lisyarus от Апрель 11, 2012, 22:23
Огромное спасибо, заработало