Q_OBJECT 构造函数未定义的引用

转载 2018年04月17日 16:32:09

转自:https://blog.csdn.net/yangxiao_0203/article/details/25488493

问题描述:某一个类中如果加入Q_OBJECT后,则link时提示:undefined reference to vtable for "xxx::xxx"。可是删掉后运行程序时在Qt的应用程序输出中又会显示Object::connect: No such slot XXX::XXX()。

原因:删除Q_OBJECT之后,该类的信号/槽机制就失效了,因此在其他类中connect该类的槽时,就会显示"No such slot……"。在该类中加上Q_OBJECT之后,link时提示:undefined reference to vtable for "xxx::xxx"。如果不是语法错误,且不论在QtCreator中怎么清理项目,错误仍存在,那么可能的原因是该类原来没有添加Q_OBJECT,则在程序输出目录中由qmake生成的makefile文件里不存在编译Q_OBJECT的信息,因此信号/槽机制失效。而在该类加上Q_OBJECT后,QtCreator没有自动执行qmake来更新makefile文件,这时就会在link时有上述错误。

解决办法:删除程序的输出目录build-XXX-XXX-release,重新构建项目就行了。也可以手动运行一次qmake来解决。


C++ Builder 6 BizSnap/SOAP/WebService(2) -- 通过 SOAP 传递自定义类型数据(改)

    说明:本文经过一些改动,纠正了一些问题,因为原文无法修改,只好重发。不久前我收到几位朋友发来Mail说明他们在按照本文所述进行WebService应用开发时碰到的一个问题:在用ISAPI方式编...
  • Raptor
  • Raptor
  • 2002-08-19 16:31:00
  • 5063

c++编译中出现‘vtable for ***未定义的引用解决办法

class Brass:public AcctABC { private: public: Brass(const std::string & s="Nullbody",long ...
  • qq_19175749
  • qq_19175749
  • 2015-09-20 01:16:33
  • 6976

C++中未定义类的引用。

在有时候因为类太大,需要在类在后面定义; 例如:     class Y{ void f(X); }; class X{ //一些成员数据和函数 };//error因为c++要求任何一个变量在...
  • zhouyelihua
  • zhouyelihua
  • 2014-06-19 21:31:51
  • 5677

qt中出现对构造函数和析构函数未定义的引用

原因:不小心把一个类的头文件删除了,又重新添加了一份,新添加的头文件自动添加在.pro文件中HEADERS+=的最后,与之前的顺序不一致,导致当使用该类声明对象的时候,该类的头文件还没有编译,所以Qt...
  • qq513536189
  • qq513536189
  • 2017-05-08 10:11:25
  • 429

Q_OBJECT 宏

转载自http://www.devbean.info/2012/08/qt-study-road-2-custom-signal-slot/ 上一节我们详细分析了 connect() 函数。使用...
  • jiong_1988
  • jiong_1988
  • 2012-09-04 10:52:30
  • 6403

异常汇总:未定义构造函数

类型"Microsoft.Office.Interop.Word.ApplicationClass" Technorati 标签: 未定义构造函数 解决办法:解决方案资源管理器 -> 引用 -> ...
  • eryongyan
  • eryongyan
  • 2013-08-29 11:54:15
  • 1005

ArcEngine开发中“错误类型"****"未定义构造函数”

问题 在ArcEngine开发的时候,在编译时,发现出现这样的错误,出错的地方在实例化一个对象的时候。 比如: ISpatialReference a = new UnknownCoordina...
  • zy332719794
  • zy332719794
  • 2013-05-30 09:18:35
  • 3201

类型Microsoft.Office.Interop.Excel.ApplicationClass未定义构造函数

类型“Microsoft.Office.Interop.Excel.ApplicationClass”未定义构造函数 无法嵌入互操作类型“Microsoft.Office.Interop.Exc...
  • Adensky
  • Adensky
  • 2014-03-26 11:25:43
  • 8754

由Q_OBJECT引起的undefined reference to vtable for "xxx::xxx"问题

问题描述:某一个类中如果加入Q_OBJECT后,则link时提示:undefined reference to vtable for "xxx::xxx"。可是删掉后运行程序时在Qt的应用程序输出中又...
  • yangxiao_0203
  • yangxiao_0203
  • 2014-05-10 16:25:50
  • 3726

解决 Qt5 使用 OpenGL 函数未定义的错误

解决 Qt5 使用 OpenGL 函数未定义的错误
  • qyvlik
  • qyvlik
  • 2016-05-29 00:23:04
  • 1960
收藏助手
不良信息举报
您举报文章:Q_OBJECT 构造函数未定义的引用
举报原因:
原因补充:

(最多只允许输入30个字)