2>DlgPathEditor.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __cdecl DlgPathEditor::metaObject(void)const " (?metaObject@DlgPathEditor@@UEBAPEBUQMetaObject@@XZ)
2>DlgPathEditor.obj : error LNK2001: unresolved external symbol "public: virtual void * __cdecl DlgPathEditor::qt_metacast(char const *)" (?qt_metacast@DlgPathEditor@@UEAAPEAXPEBD@Z)
2>DlgPathEditor.obj : error LNK2001: unresolved external symbol "public: virtual int __cdecl DlgPathEditor::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@DlgPathEditor@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)
手动增加的DlgPathEditor 类,手动增加Q_OBJECT,出现以上错误。
将.h 与.cpp 移除工程,重新添加进工程。 设置.h文件的moc命令

重新编译成功。
还要在工程的Generatedfiles 里添加 moc....cpp
否则,会不生成moc....obj 。
这篇博客讲述了在Qt编程中遇到的Q_OBJECT链接错误问题。作者手动添加了DlgPathEditor类并包含Q_OBJECT宏,但编译时出现了未解析的外部符号错误。通过从工程中移除.h和.cpp文件再重新添加,并确保.moc命令正确配置,最终解决了问题。此外,还需在工程的GeneratedFiles目录下添加相应的 moc 文件以避免编译失败。

418

被折叠的 条评论
为什么被折叠?



