昨天遇到这个问题,很是纳闷,真不知道怎么解决,上网搜了下,找到了以下办法:
---------------------------------------
链接器linker需要将虚函数表vtable 放入某个object file,但是linker无法找到正确的object文件。
这个错误常见于刚刚创建一系列有继承关系的class的时候,这个时候很容易忘了给base class的virtual function加上函数实现。
解决办法:给基类的virtual函数加上本来就应该有的function body。
----------------------------------------
补充一下,其实当时没有搜到此法的时候我也试过加上函数体然后再编译,但是好像没有用,后来偶然把之前编译的 .o 文件删除,然后再从新编译就可以了。。。
---------------------------------------
链接器linker需要将虚函数表vtable 放入某个object file,但是linker无法找到正确的object文件。
这个错误常见于刚刚创建一系列有继承关系的class的时候,这个时候很容易忘了给base class的virtual function加上函数实现。
解决办法:给基类的virtual函数加上本来就应该有的function body。
----------------------------------------
补充一下,其实当时没有搜到此法的时候我也试过加上函数体然后再编译,但是好像没有用,后来偶然把之前编译的 .o 文件删除,然后再从新编译就可以了。。。
本文介绍了解决C++中因虚函数表vtable引起的编译错误的方法。该错误通常发生在新创建的一系列有继承关系的类中,未给基类的虚函数添加函数体是常见原因。解决方案包括为基类的虚函数添加实现,并清除旧的编译文件重新编译。
685

被折叠的 条评论
为什么被折叠?



