前两天在写测试程序的时候,直接把类定义在了cpp文件里面。如:
class Test
{
Q_OBJECT
public:
private:
int m_a;
};
在没有使用Test这个类时,进行编译没有问题,可是当我后面使用这个类时,就提示:undefined reference to ‘vtable for Test’
在网上查了下资料,网友提示说与什么moc有关系,大致去浏览了一下,也不是很明白。
然后解决的办法就是:不要在cpp文件里面使用 Q_OBJECT 这个宏,可以把这个类的定义放h文件里面。如果非要在cpp里面使用,需要额外加点东西。具体加什么,我目前也没搞明白,先记录一下,有空再查下资料。
版权声明:本文为a3121772305原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。