Im trying to make some small programs with QT4. Everyting goes well untill I want to create my own widgets with the Q_OBJECT in a class.
Then I can't compile the thing anymore.
It says:

Undefined symbols:
  "vtable for Communicate", referenced from:
      __ZTV11Communicate$non_lazy_ptr in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

What did I do wrong? I just copy-pasted some code from a tutorial.
It's the communicate example at the bottom. The only difference with my code is that I've put everything in one file. I know it isn't supposed to be done that way but I just want to learn QT4.

I've already tried reinstalling QT4 but it didn't help.
I'm running Snow Leopard if it makes any difference.


Did you go through all of the

qmake -project    (regardless of your project name)
qmake projname.pro (your projects C++ file name+.pro)

steps. If not, try that. If you have done it, try dividing it up into the three files to see what happens. Qt works with a lot of macros and something out of place could gum up the works.

P.S. There's a free pdf (released by the author under Open Publication) at http://www.qtrac.eu/marksummerfield.html (the author's website). Regrettably, I never finished it but I got through the bulk of it. He develops a very very rudimentary spreadsheet application but it's neat to see the inner machinations.

Well I've divided it into 3 files and now it works.
So from now on doing it the right way and not in a hurry.

This article has been dead for over six months. Start a new discussion instead.