• 6245阅读
  • 4回复

undefined reference to `vtable for ...` [复制链接]

上一主题 下一主题
离线cutenewbie
 
只看楼主 倒序阅读 楼主  发表于: 2010-02-23
新手,新建了一个类,继承自QObject,在类开头也写上了Q_OBJECT,
连接时出现undefined reference to `vtable for ...'错误,好像moc没有处理这个头文件,
请问可能是什么原因,用的qtcreator。
离线午小夜

只看该作者 1楼 发表于: 2010-02-23
你可能是忘记了执行moc,或者忘记了将moc输出加入到link命令里。
重新加入Q_OBJECT 宏之后,因为之前qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.,要重新运行qmake。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线steinlee

只看该作者 2楼 发表于: 2010-02-23
These steps may help too
1. make clean
2. make
Looking for remote C/C++ and Qt 兼职
离线cutenewbie
只看该作者 3楼 发表于: 2010-02-23
对了,是在windows下,clean和重新编译后问题仍在,
加入其它类似的类和相应文件时并没有遇到这个问题,"*.pro"文件中也自动加上了这个类的头文件,
为什么就没有自动调用moc呢
离线cutenewbie
只看该作者 4楼 发表于: 2010-02-23
问题解决了,是需要重新执行,Build->Run qmake,新手,刚开始没理解二楼版主的话怎么操作,发现Makefile.Debug内容不对,删掉后不得不找到并运行qmake,问题就解决了,谢谢各位了。
快速回复
限100 字节
 
上一个 下一个