Questo è il mio colpo di testa: Qt Linker di errore: "undefined reference to 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
Questa è la mia classe:
#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)
{
}
ottengo un errore Linker:
undefined reference to 'vtable for BarelySocket'
- Ciò implica che ho un metodo virtuale non implementato. Ma lo non sono metodi virtuali nella mia classe.
- Ho commentato il vettore pensando che fosse la causa, ma l'errore non è andato via.
- Il
Message
è un complessostruct
, ma utilizzando ancheint
invece ha risolto .
Hai provato una build pulita iniziando dall'esecuzione di 'qmake'? Questo può accadere se 'moc' non elabora l'intestazione della tua classe per qualche motivo. –
Sto lavorando con QT Creator. Ho copiato tutti i file cpp in un nuovo Projekt pulito. Ho eliminato l'implementazione dello slot che ho codificato in fault. Rispetto ai problemi se n'è andato. Grazie per il vostro aiuto! – Thomas