在装了rqt插件的QT中出现“undefined reference to `vtable for’”问题的原因及解决方法

        因为是项目的需要刚用qt不久,在rqt的环境下,想要用qt写ros的操作界面,发现下载qt creator ide跟之前用过的不太一样,就连帮助文档的查找结果也是不一样的(都是在5.9.1的版本下)。但是按着网上的例子,还是可以用的。

        可是当我自己继承graphicsview类,想对其进行重写时却出现了一个问题:“undefined reference to `vtable for';

        一开始为以为这是由于在类中声明了函数成员,但是未对其实现定义,但检查结果发现我的已经实现了,而且也出现了signals无法使用的现象。

        原来信号与槽之间可以进行通信的根本原因是:当在类的头文件中添加Q_OBJECT以后QtCreator会自动的创建一个moc_***.cpp文件,用于实现信号与槽通信的代码。但是,有时当我们通过QtCreator创建类的时候,没有通过IDE选项选择其派生自QObject类,而是在后面添加的,则会出现QtCreator没有自动创建moc_***.cpp文件的情况。

         这种情况下就会报错 : undefined reference to `vtable for *

解决方法:

从QtCreator去除该类的头文件,然后再通过“添加现有文件”的方法,将该头文件添加进来。这样QtCreator就会自动为该类创建moc_***.cpp文件。

在装了rqt插件的QT中出现“undefined reference to `vtable for’”问题的原因及解决方法_第1张图片


在装了rqt插件的QT中出现“undefined reference to `vtable for’”问题的原因及解决方法_第2张图片

你可能感兴趣的:(在装了rqt插件的QT中出现“undefined reference to `vtable for’”问题的原因及解决方法)