I've encountered this error when I wrote a new class:
============================================================
error: invalid use of incomplete type ‘class MobileNode’
class MyNode : public MobileNode
error: redefinition of ‘class MyNode’
class MyNode : public MobileNode
error: previous definition of ‘class MyNode’
class MyNode : public MobileNode
============================================================
the class is:
I don't think the forward declaration really matter (could be wrong), but the big red flag i see is that you have 1 #if____ macro, but 2 #endif macros.