I am trying to write an Http proxy that basically works like indianwebproxy
So i fired up qtcreator and but one of my classes is failing to compile with the infamous error : undefined reference to vtable for HttpProxyThreadBrowser
. I can't figure out why its doing this. I read through similar questions on Stackoverflow and apparently the problem is with undefined virtual methods that are not pure But i have not declared any virtual functions. Here is my class
class HttpProxyThreadBrowser : public QThread
{
public:
HttpProxyThreadBrowser(QTcpSocket outgoingSocket,QTcpSocket browserSocket,QObject *parent = 0);
~HttpProxyThreadBrowser(){};
void run();
private:
QTcpSocket outgoingSocket;
QTcpSocket browserSocket;
};
And I define the class here in pastebin so as not to bore you. Unfortunately i cant find out why the vtable is undefined. Please assist.
httpproxythreadbrowser.cpp:5: undefined reference to `vtable for HttpProxyThreadBrowser
collect2: ld returned 1 exit status
You can't copy QTcpSocket
s, so it may cause other cryptic errors if you try to pass them by copy rather than by address.
HttpProxyThreadBrowser(QTcpSocket * outgoingSocket,QTcpSocket * browserSocket,QObject *parent = 0);
private:
QTcpSocket* outgoingSocket;
QTcpSocket* browserSocket;
And completely recompiling your project may help, when you change header files, because qmake generated Makefile can sometimes fail to notice the changes.