我在Fedora9上模拟一个qtopia程序时出现以下错误:[root@yly pr9000]# make
g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qt2/include -I/opt/EmbedSky/Qte/x86-qtopia-2.2.0/qtopia/include -o moc_pr9000.o moc_pr9000.cpp
moc_pr9000.cpp: In destructor ‘PR9000_metaObj_Unloader::~PR9000_metaObj_Unloader()’:
moc_pr9000.cpp:37: 错误:‘objectDict’在此作用域中尚未声明
moc_pr9000.cpp: At global scope:
moc_pr9000.cpp:43: 错误:成员函数‘void PR9000::initMetaObject()’未在类‘PR9000’中声明
moc_pr9000.cpp:54: 错误:‘QString PR9000::tr(const char*)’的原型不匹配类‘PR9000’中的任何一个
pr9000.h:22: 错误:备选为:static QString PR9000::tr(const char*, const char*)
moc_pr9000.cpp: In static member function ‘static QMetaObject* PR9000::staticMetaObject()’:
moc_pr9000.cpp:89: 错误:‘new_metadata’不是‘QMetaObject’的成员
moc_pr9000.cpp:90: 错误:‘new_metaaccess’不是‘QMetaObject’的成员
moc_pr9000.cpp:92: 错误:‘struct QMetaData’没有名为‘ptr’的成员
moc_pr9000.cpp:92: 错误:‘QMember’在此作用域中尚未声明
moc_pr9000.cpp:92: 错误:expected `;' before ‘ov1_0’
moc_pr9000.cpp:95: 错误:‘struct QMetaData’没有名为‘ptr’的成员
moc_pr9000.cpp:95: 错误:expected `;' before ‘ov1_1’
moc_pr9000.cpp:98: 错误:‘struct QMetaData’没有名为‘ptr’的成员
moc_pr9000.cpp:98: 错误:expected `;' before ‘ov1_2’
moc_pr9000.cpp:101: 错误:‘struct QMetaData’没有名为‘ptr’的成员
moc_pr9000.cpp:101: 错误:expected `;' before ‘ov1_3’
moc_pr9000.cpp:111: 错误:对‘QMetaObject::new_metaobject(const char [7], const char [8], QMetaData*&, int, int, int, int, int, int, int, int, int)’的调用没有匹配的函数
/usr/lib/qt-3.3/include/qmetaobject.h:214: 附注:备选为: static QMetaObject* QMetaObject::new_metaobject(const char*, QMetaObject*, const QMetaData*, int, const QMetaData*, int, const QMetaProperty*, int, const QMetaEnum*, int, const QClassInfo*, int)
/usr/lib/qt-3.3/include/qmetaobject.h:222: 附注: static QMetaObject* QMetaObject::new_metaobject(const char*, QMetaObject*, const QMetaData*, int, const QMetaData*, int, const QMetaProperty*, int, const QMetaEnum*, int, bool (*)(QObject*, int, int, QVariant*), const QClassInfo*, int)
moc_pr9000.cpp:112: 错误:‘class QMetaObject’没有名为‘set_slot_access’的成员
moc_pr9000.cpp:82: 警告:未使用的变量‘ov1_0’
moc_pr9000.cpp:84: 警告:未使用的变量‘ov1_1’
moc_pr9000.cpp:86: 警告:未使用的变量‘ov1_2’
moc_pr9000.cpp:88: 警告:未使用的变量‘ov1_3’
make: *** [moc_pr9000.o] 错误 1
我用Fedora9自带的编译器。好像是moc有问题,请问怎么解决?
谢谢!