MinGW的g++默认是关闭的,而且Qt自称拥有元对象系统,不用C++的RTTI。
但是不是Qt的类就不行了,要想对C++不完整的动态联编进行补充,只能使用RTTI,要么就必须改源代码。
目前的一个办法就是在Makefile.Debug或Makefile.Release中将-fno-rtti改为-frtti。但是我想能否在pro文件中指定呢?
目前在/mkspecs/win32-g++/qmake.conf中找到了两个标识符:
QMAKE_CXXFLAGS_RTTI_ON和QMAKE_CXXFLAGS_RTTI_OFF
但我在pro文件中使用,还是出错。
出错的提示是这样的:
c:\Programming\Qt4.8.3\src\corelib\global\qglobal.h:2505: 错误:'dynamic_cast_will_always_fail_because_rtti_is_disabled' is not a member of 'GameObject*'