【发布时间】:2011-06-14 01:01:32
【问题描述】:
我在 Windows 7 Ultimate 32 位上使用 Qt Creator 2.0.1 和 Qt 4.7.0(32 位)。
考虑以下代码,这是产生错误的最低限度:
class T : public QObject, public QGraphicsItem
{
Q_OBJECT
public:
T() {}
QRectF boundingRect() const {return QRectF();}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget) {}
};
int main()
{
T t;
return 0;
}
上述代码片段导致以下链接器错误:
在函数“T”中:
对 `vtable for T' 的未定义引用
对 `vtable for T' 的未定义引用
在函数`~T'中:
对 `vtable for T' 的未定义引用
对 `vtable for T' 的未定义引用
如果我注释掉包含Q_OBJECT 的行,它编译得很好。我需要QGraphicsItem 的信号和插槽,所以我需要Q_OBJECT。
代码有什么问题?谢谢。
【问题讨论】:
标签: c++ qt linker-errors vtable