QT自定义控件“undefined reference to 'vtable for'”问题
来源:互联网 发布:淘宝店铺能卖多少钱 编辑:程序博客网 时间:2024/06/05 07:32
由于要在控件中绘图,用到自定义控件,在自定义控件中实现绘制图形功能。
在wavewidget.h文件中定义类如下。
class WaveWidget:public QWidget{ Q_OBJECTpublic: WaveWidget(QWidget *parent = 0); WaveWidget(int width = 0,int height = 0,QWidget *parent = 0);protected: void paintEvent(QPaintEvent * e);};
一直编译不通过,提示“undefined reference to 'vtable for'”错误,查遍了书籍,没有发现语法错误,去掉“Q_OBJECT”就能编译通过。但是要用到消息和槽机制,不能屏蔽掉它。
通过查看错误信息,认为是.o文件问题,清除*.o文件,重新构建项目,删除debug文件夹等手段,依旧不能解决问题。纠结了很久。
最终查找资料发现,原因是moc没有更新导致,更新*.pro文件,重新qmake一下,顺利解决。
出现此问题的原因是:
预编译器打开宏Q_OBJECT,声明若干个由moc处理(implement)的成员函数。假如得到类似于“undefined reference to vtable for LcdNumber”的编译错误,可能是忘记了执行moc,或忘记了将moc输出加入到link命令里。qmake生成Makefile的时候,这个类的头文档中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.
问题总结:
在QT中,遇到有些不可思议的问题,可以从qmake、*.pro、Makefile中入手,说不定就是这其中某个语句错误引起。
感谢博主的分享,网址如下。
<a target=_blank href="http://blog.chinaunix.net/uid-25749806-id-2942348.html">http://blog.chinaunix.net/uid-25749806-id-2942348.html</a>
感概:
QT的机制还是有问题,出现此类找不到原因的问题,要解决掉还真花时间啊。
- QT自定义控件“undefined reference to 'vtable for'”问题
- Qt 出现“undefined reference to `vtable for”的问题
- Qt 出现“undefined reference to `vtable for”
- Qt “undefined reference to `vtable for”
- QT错误undefined reference to vtable for
- QT undefined reference to `vtable for "xxx"'
- QT错误undefined reference to vtable for **
- QT undefined reference to vtable for ''
- undefined reference to `vtable for MyAgent' 问题
- QT qt undefined reference to vtable for 报错
- undefined reference to `vtable for
- undefined reference to `vtable for”
- undefined reference to `vtable for
- undefined reference to vtable for
- undefined reference to vtable for
- QT中添加自定义Class,出现“undefined reference to vtable for”之解决方案(Eclipse+Linux)
- Qt 出现“undefined reference to `vtable for”原因总结;
- link Qt 出现 undefined reference to vtable for "xxx::xxx"
- PreparedStatement中的execute()方法
- 学区房开发总结
- String的trim
- 宿主机与虚拟机通讯方式及方法
- Lamp环境搭建
- QT自定义控件“undefined reference to 'vtable for'”问题
- 不使用left-join等多表关联查询,只用单表查询和Java程序,简便实现“多表查询”效果
- Linux diff
- 产品经理面试会被问到什么?
- Project configuration is not up-to-date with pom.xml
- 高效程序员的7个共同特征
- 语音之死,是谋杀、他杀还是自杀?
- linux设备树dts一之移植详解
- GUI 五大布局管理器(讲三种) FlowLayout布局管理器 Button类 Frame类的setLayout方法