用VS创建新的QT Widgets工程后编译正常,但是在添加新的QT类MyTestWidget之后,出现了如下的编译链接错误:
LNK1120 3 个无法解析的外部命令
LNK2001 无法解析的外部符号 "public: virtual int __thiscall MyTestWidget::qt_metacall(enum QMetaObject::Call,int,void * *)"
LNK2001 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall MyTestWidget::metaObject(void)const " (?metaObject@MyTestWidget@@UBEPBUQMetaObject@@XZ)
LNK2001 无法解析的外部符号 "public: virtual void * __thiscall MyTestWidget::qt_metacast(char const *)" (?qt_metacast@MyTestWidget@@UAEPAXPBD@Z)
解决方案:
1.在【MyTestWidget.h】文件上点击右键,弹出如下界面
2.将【配置属性】-》【常规】-》【项类型】下的【C/C++标头】更改为【Qt Meta-Object Compiler (moc)】
3.重新编译,问题解决