Esta es mi cabecera: Qt Enlazador de error: "referencia indefinida a VTABLE"
#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
Ésta es mi clase:
#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)
{
}
consigo un error del vinculador:
undefined reference to 'vtable for BarelySocket'
- Esto implica que tengo un método virtual no implementado. Pero no hay métodos virtuales en mi clase .
- Comenté el vector pensando que era la causa, pero el error no desapareció.
Message
es un complejostruct
, pero incluso utilizandoint
en su lugar no solucionó las cosas.
¿Has probado una compilación limpia a partir de ejecutar 'qmake'? Esto puede suceder si 'moc' no procesa el encabezado de su clase por alguna razón. –
Estoy trabajando con QT Creator. Copié todos los archivos cpp en un nuevo Projekt limpio. Eliminé la implementación de la ranura que codifiqué erróneamente. Que los problemas desaparecieron. ¡Gracias por tu ayuda! – Thomas