gpt4 book ai didi

c++ - 未定义的 vtable 引用,Linux 中的 Qt

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:01 26 4
gpt4 key购买 nike

我试图在 Ubuntu 10.04 中的 Code::Blocks 下编译 Qt 和 OpenGL 程序。我得到“对 GLWidget 的 vtable 的 undefined reference ”

#ifndef _GLWIDGET_H
#define _GLWIDGET_H

#include <QtOpenGL/QGLWidget>
#include "stdlib.h"

class GLWidget : public QGLWidget {

Q_OBJECT // must include this if you use Qt signals/slots

public:
GLWidget(QWidget *parent = 0);
~GLWidget();
protected:
void initializeGL();
void resizeGL(int w, int h);
void paintGL();
void keyPressEvent(QKeyEvent *event);
};

#endif /* _GLWIDGET_H */

我从这个人那里借用了代码,看看它是否有效,因为我的代码因同样的原因而无法正常工作。 Code

这是 GLWidget.cpp:

#include <QtGui/QMouseEvent>
#include "glwidget.h"

GLWidget::GLWidget(QWidget *parent) : QGLWidget(parent) {
setMouseTracking(true);
}

GLWidget::~GLWidget()
{
}

void GLWidget::initializeGL() {
...
}

void GLWidget::resizeGL(int w, int h) {
...
}

void GLWidget::paintGL() {
...
}

void GLWidget::keyPressEvent(QKeyEvent* event) {
...
}
}

我从 GL 部分删除了代码以使其更短。如果您需要,我可以随时发布。

#include <QtGui/QApplication>
#include <QtOpenGL/QGLWidget>
#include "glwidget.h"

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

QApplication app(argc, argv);

GLWidget window;
window.resize(800,600);
window.show();

return app.exec();
}

最佳答案

在你的project.pro文件中添加

QT += opengl

所以它知道它必须链接到 GL 库。

关于c++ - 未定义的 vtable 引用,Linux 中的 Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4526016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com