【qt错误】LNK2001 - unresolved external symbol "public: virtual struct QMetaObject

xiaoxiao2021-02-28  96

QT 无法解释外部符号 “QMetaObject ”错误

stackoverflow

QT自定义的QObject编译错误:

main.obj? error: LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall Parent::metaObject(void)const " (?metaObject@Parent@@UBEPBUQMetaObject@@XZ)

main.obj? error: LNK2001: unresolved external symbol “public: virtual void * __thiscall Parent::qt_metacast(char const *)” (?qt_metacast@Parent@@UAEPAXPBD@Z)

main.obj? error: LNK2001: unresolved external symbol “public: virtual int __thiscall Parent::qt_metacall(enum QMetaObject::Call,int,void * *)” (?qt_metacall@Parent@@UAEHW4Call@QMetaObject@@HPAPAX@Z)

解决办法: 注释掉类以及子类的所有Q_OBJECT,重新编译,然后解除注释,再编译


如果上述方法不行,可能是因为类的声明和实现放在同一个.h文件或者别的类的.cpp文件里了,尝试将这部分代码单独放到一对.h、.cpp文件里,删除GeneratedFiles、release、debug三个文件夹里的内容,重新编译

转载请注明原文地址: https://www.6miu.com/read-53393.html

最新回复(0)