The rule compiling simulator projects is missing the use of the UDEFS variable which is used in compiling target projects. This can lead to projects compiling for targets but not for the simulator.
Wasn't my intention to say you should have searched more! I think having multiple posts about this is fine. Looking back at my original post, I'm not sure if I explained the solution correctly, so having multiple eyes on this is good