I had the same problem and finally got a solution to it.
I have both commercial and opensource version of Qt 4.7.3 on my PC.
I compiled the commercial version by myself using such the follow command:
configure -debug-and-release -platform win32-msvc2010 -commercial -fast -nomake examples -nomake demos
the opensource version is already compiled.
I tried to build my project but the QT_NO_DYNAMIC_CAST flag in Makefile breaks it. However it works fine when i build it with the opensource version.
At first thought it was a problem of qmake.exe because i copied the qmake.exe from the opensource version into the commercial version and it worked just ok!
I tried to recompile qmake.exe and failed.
finally i compared all the content between the two version and find a file named qconfig.pri in /mkspecs/.
i copied it into the commercial version and the problem's gone.
the file content is as below:
CONFIG+= debug shared stl exceptions rtti mmx sse sse2
QT_ARCH = windows
QT_EDITION = FullFramework
QT_CONFIG += release debug zlib png accessibility qt3support opengl s60 ipv6 script scripttools xmlpatterns multimedia audio-backend declarative native-gestures svg minimal-config small-config medium-config large-config full-config
#versioning
QT_VERSION = 4.7.3
QT_MAJOR_VERSION = 4
QT_MINOR_VERSION = 7
QT_PATCH_VERSION = 3
#Qt for Windows CE c-runtime deployment
QT_CE_C_RUNTIME = no
#Qt for Symbian FPU settings
Hope this will help anyone who has the same problem.