【发布时间】:2011-02-03 02:11:09
【问题描述】:
这是我的标题:
#ifndef BARELYSOCKET_H
#define BARELYSOCKET_H
#include <QObject>
//! The First Draw of the BarelySocket!
class BarelySocket: public QObject
{
Q_OBJECT
public:
BarelySocket();
public slots:
void sendMessage(Message aMessage);
signals:
void reciveMessage(Message aMessage);
private:
// QVector<Message> reciveMessages;
};
#endif // BARELYSOCKET_H
这是我的课:
#include <QTGui>
#include <QObject>
#include "type.h"
#include "client.h"
#include "server.h"
#include "barelysocket.h"
BarelySocket::BarelySocket()
{
//this->reciveMessages.clear();
qDebug("BarelySocket::BarelySocket()");
}
void BarelySocket::sendMessage(Message aMessage)
{
}
void BarelySocket::reciveMessage(Message aMessage)
{
}
我收到链接器错误:
undefined reference to 'vtable for BarelySocket'
- 这意味着我有一个未实现的虚拟方法。但是那里 在我的课堂上没有虚拟方法。
- 我注释掉了向量,认为这是原因,但是 错误并没有消失。
-
Message是一个复杂的struct,但即使使用int也可以 不解决问题。
【问题讨论】:
-
您是否尝试过从运行
qmake开始的干净构建?如果moc出于某种原因没有处理您的类的标头,则可能会发生这种情况。 -
我正在使用 QT Creator。我将所有 cpp 文件复制到一个新的干净 Projekt 中。我删除了我错误编码的插槽实现。比问题消失了。感谢您的帮助!
标签: c++ qt linker-errors vtable qobject