gpt4 book ai didi

c++ - Q_OBJECT 链接器错误!

转载 作者:IT老高 更新时间:2023-10-28 23:03:35 28 4
gpt4 key购买 nike

我在构建应用程序时收到以下链接器错误。

HIMyClass.obj:: error: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CHIMyClass::metaObject(void)const " (?metaObject@CHIMyClass@@UBEPBUQMetaObject@@XZ) File not found : HIMyClass.obj

HIMyClass.obj:: error: unresolved external symbol "public: virtual void * __thiscall CHIMyClass::qt_metacast(char const *)" (?qt_metacast@CHIMyClass@@UAEPAXPBD@Z) File not found : HIMyClass.obj

HIMyClass.obj:: error: unresolved external symbol "public: virtual int __thiscall CHIMyClass::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@CHIMyClass@@UAEHW4Call@QMetaObject@@HPAPAX@Z) File not found : HIMyClass.obj

我的类(class)声明是这样的

class CHIMyClass:public QDialog
{
Q_OBJECT

....

};

当我评论 Q_OBJECT 时,链接器错误消失(显然我无法使用信号和插槽)。我使用 Qt Creator 作为 IDE 和 Qt 4.5.3。当我给出 Rebuild All 时,肯定会调用 QMake。我想,它的 moc_* 文件的生成是问题所在。我使用的是 Windows XP 和 cl 作为编译器。

此链接器错误背后的原因可能是什么?

最佳答案

此类错误通常意味着您没有将类的标题添加到 pro 文件中的“HEADERS”变量中(元对象编译器仅为此变量中列出的标题生成 moc_ 文件)。更改 .pro 文件后记得运行 qmake!

关于c++ - Q_OBJECT 链接器错误!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3264259/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com