Совсем недавно начал использовать 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
Сборка завершилась с ошибкой.
В чем может быть проблема?