Qt vtable error
来源:互联网 发布:在淘宝买ipad可靠吗 编辑:程序博客网 时间:2024/06/03 18:21
在用Qt进行控制台编程时,很多文件不是由QtCreator自动辅助生成的。
(例如界面编程时用到的ui_xxx.h是辅助自动生成的)。
在控制台程序中同样会使用到信号和槽的机制,这是需要派生类。
#include <QObject>
class xxx:public QObject
{
Q_OBJECT
public:
xxx();
}
这时如果直接编译会报出类似错误:
“undefined reference to 'vtable for xxx”;
出现这个错误的原因和Q_OBJECT有关,在qmake生成Makefile的时候,
这个类的头文件中没有Q_OBJECT,所以相应的Makefile中没有moc xxx.h命令,
因而没有生成moc_xxx.h文件。
我们需要在项目中生成moc_xxx.h文件。
qt不会自动moc cpp文件。
生成方式之一是手动生成:
1. Windows cmd 进入到Qt的bin目录,假设qmake用的是mingw32,
则进入(假设)c:\qt\...\mingw53_32\bin
执行 moc d:\...\xxx.h -o d:\...\moc_xxx.h;
2.将moc_xxx.h添加到工程之中;
3.编译并且执行。
执行之后错误消失,并且程序能够自动运行。
疑问:删除moc_xxx.h之后,再次编译运行之后错误也是没有出现的。而且
清空debug文件夹之后仍然可以生成moc_xxx.cpp和moc_xxx.obj。原因不明。
(例如界面编程时用到的ui_xxx.h是辅助自动生成的)。
在控制台程序中同样会使用到信号和槽的机制,这是需要派生类。
#include <QObject>
class xxx:public QObject
{
Q_OBJECT
public:
xxx();
}
这时如果直接编译会报出类似错误:
“undefined reference to 'vtable for xxx”;
出现这个错误的原因和Q_OBJECT有关,在qmake生成Makefile的时候,
这个类的头文件中没有Q_OBJECT,所以相应的Makefile中没有moc xxx.h命令,
因而没有生成moc_xxx.h文件。
我们需要在项目中生成moc_xxx.h文件。
qt不会自动moc cpp文件。
生成方式之一是手动生成:
1. Windows cmd 进入到Qt的bin目录,假设qmake用的是mingw32,
则进入(假设)c:\qt\...\mingw53_32\bin
执行 moc d:\...\xxx.h -o d:\...\moc_xxx.h;
2.将moc_xxx.h添加到工程之中;
3.编译并且执行。
执行之后错误消失,并且程序能够自动运行。
疑问:删除moc_xxx.h之后,再次编译运行之后错误也是没有出现的。而且
清空debug文件夹之后仍然可以生成moc_xxx.cpp和moc_xxx.obj。原因不明。
阅读全文
0 0
- Qt vtable error
- [Qt] vtable .....
- QT Error undefined reference to `vtable for MyThread'
- [Qt解错篇]报错:error: undefined reference to vtable for ClassName
- Qt出现“error: undefined reference to `vtable for peripherals'”及处理方法
- vtable
- vtable
- vtable
- Qt 出现“undefined reference to `vtable for”
- codeblocks undefined reference to vtable (非QT)
- 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 ''
- [linker error] undefined reference to vtable for **
- error: undefined reference to 'vtable for SkOSWindow'
- error: undefined reference to 'vtable for XXXXXXXX'
- TimerTask 更新UI线程
- 【转】Spring+Spring Security+OAuth2实现REST API权限控制
- 【实战】(三)android模拟qq登录(开源框架get和post)
- dl的 fine-tune 的一点小理解
- web.xml中CharacterEncodingFilter编码过滤器的原理
- Qt vtable error
- BZOJ 1146: [CTSC2008]网络管理Network 【树上带修改主席树】
- opencv(c++)OpenCV添加(混合)两个图像
- Maven下载+配置
- 基于自定义的Excel解析框架的使用范例
- Assigmment2
- 初来乍到,请多指教
- 01可行性研究报告(机房收费系统V2.1)
- 函数的调用过程--栈帧