首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Q_OBJECT链接器错误!

Q_OBJECT链接器错误!
EN

Stack Overflow用户
提问于 2010-07-16 11:20:02
回答 11查看 28.4K关注 0票数 17

当我构建我的应用程序时,我收到下面的链接程序错误。

错误:未解决的外部符号"public:

struct QMetaObject const * __thiscall CHIMyClass::元对象(无效)const“文件未找到: HIMyClass.obj

HIMyClass.obj::错误:未解决的外部符号"public: virtual * __thiscall CHIMyClass::qt_metacast( const *)“(?qt_metacast@CHIMyClass@@UAEPAXPBD@Z)文件未找到: HIMyClass.obj

错误:未解决的外部符号"public: virtual __thiscall CHIMyClass::qt_metacall(enum::Call,int,void * *)“未找到(?qt_metacall@CHIMyClass@@UAEHW4Call@QMetaObject@@HPAPAX@Z)文件: HIMyClass.obj

我的班级声明就像

代码语言:javascript
复制
class CHIMyClass:public QDialog
{
   Q_OBJECT

   ....

};

当我评论Q_OBJECT时,链接器错误就会消失(很明显,我不能使用信号和插槽)。我使用作为IDE和QT4.5.3。当我给重新构建所有时,肯定会调用QMake。我想,moc_*文件的生成是问题所在。我正在使用Windows和cl作为编译器。

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

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2010-07-16 12:31:45

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

票数 31
EN

Stack Overflow用户

发布于 2011-02-11 08:51:01

我有一个类似的问题,它解决了使用andref的反馈。在中,我简单地说:

qmake

  • Build/Run

/

  1. 构建/清除所有
  2. 生成/运行
票数 13
EN

Stack Overflow用户

发布于 2013-07-03 06:20:55

每当您更改QObject继承时,一定要执行clean,然后是qmake,然后是buildqmake很重要,因为它更新.h文件中任何新的Qt更改(包括QObject继承,即Q_OBJECT )的moc*文件。实际上,在某些情况下,您甚至可以简单地执行qmake然后build来进行增量构建。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3264259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档