• 5319阅读
  • 5回复

[提问]编译出错“undefined reference to 'vtable for MyItem'” [复制链接]

上一主题 下一主题
离线omss
 

只看楼主 倒序阅读 楼主  发表于: 2011-04-04
creator生成了一个程序,编译运行都没问题
现在通过add new增加了一个.cpp源码,目的是建一个自定义的QGraphicsItem,内容如下
然后编译时就出问题了,提示undefined reference to 'vtable for MyItem'
在网上搜了一下,似乎是需要moc预处理,但不知怎么加到.pro文件中或Makefile里,
次外,我看到的example程序里,类似的情况可以编译通过,不知我的代码里少了哪些关键的语句?
我试过分成2部分放到.h和.cpp文件中,同样出错
  1. #include <QGraphicsItem>
  2. class MyItem : public QGraphicsItem
  3. {
  4.     public:    
  5.       MyItem(QGraphicsItem *parent = 0);
  6.       void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget =0);
  7. };
  8. MyItem::MyItem(QGraphicsItem *parent)
  9. {
  10. }
[ 此帖被omss在2011-04-04 10:46重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2011-04-04
回 楼主(omss) 的帖子
paint 的定义何在?
离线interlc

只看该作者 2楼 发表于: 2011-04-04
你看看把你新写的类定义到主文件里没
可以参考下书中的例子,加一个新类时看看都哪些地方需要改
我一年多没碰QT了,具体也记不清了
离线omss

只看该作者 3楼 发表于: 2011-04-04
Re:回 楼主(omss) 的帖子
引用第1楼dbzhang800于2011-04-04 10:59发表的 回 楼主(omss) 的帖子 :
paint 的定义何在?


加上paint的定义就通过了,多谢!
离线omss

只看该作者 4楼 发表于: 2011-04-04
引用第2楼interlc于2011-04-04 11:04发表的  :
你看看把你新写的类定义到主文件里没
可以参考下书中的例子,加一个新类时看看都哪些地方需要改
我一年多没碰QT了,具体也记不清了



add new里面有一项 C++ class, 用这个加新类可以生成模板.h和.cpp文件,可以减少出错机会,很有用!
我以前加的是source file
离线facatcool
只看该作者 5楼 发表于: 2011-04-04
首先定义和实现不要放在一个文件中。
然后,试试菜单栏的 构建->执行qmake
快速回复
限100 字节
 
上一个 下一个