在用VS2017编译Qt项目时,有时新添加的基于QObject的类,会出现下面的错误:
LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall Parent::metaObject(void)const " (?metaObject@Parent@@UBEPBUQMetaObject@@XZ)
如果头文件中已经添加了Q_OBJECT宏,仍然出现该问题,原因可能是该类的头文件没有完成moc编译,解决方法是:
在vs中,该头文件右键->属性,在弹出窗口中,将该文件的项类型改为"Qt Meta-Object Compiler (moc)",然后重新编译工程,问题即可消除。
参考自:https://stackoverflow.com/questions/14170770/unresolved-external-symbol-public-virtual-struct-qmetaobject-const-thiscal?answertab=trending#tab-top
祝大家好运!