当我使用gcc版本3.4.6 20060404构建代码时,我得到了对‘`vtable for SubcomponentTypeWidget’错误的未定义引用。2005没有问题。我运行nm -a -C子组件TypeWidget.o来查看是否存在必要的vtable,但它没有,但是“缺失”方法在那里。创建虚拟析构函数并不强制为SubcomponentTypeWidget生成vtable。
我已经尝试过删除SubcomponentTypeWidget功能的大块。这会导致删除方法的特定链接器错误消息,但不会删除对vtable消息
我正在浏览旧的Trolltech Qt教程,因为我发现它们比新的更有帮助,当我到达实现自己的信号的类小部件时,undefined reference to vtable错误袭击了我。我仔细查看了一下,发现vtable错误是由未定义的虚函数引起的。但是,除了代码分隔之外,我没有在教程代码中省略任何内容。在lcdrange.h中省略Q_OBJECT宏以及插槽和信号似乎会使项目编译。
为什么派生类没有vtable指针,而使用基类的vtable。也许是因为它们是相同的抵消?myClassDerived_ctor(struct myClassDerived *this) myClassBase_ctor(&this->base);
this->base.vtable= (void*)&myClassDerived_vtable + sizeof(void*); // used vtable of the base clas
对于给定的类构造函数和析构函数,我收到了一个与缺少vtable相关的非常奇怪的错误。请帮我解决这个问题。架构i386的未定义符号: A::A() in A.o NOTE: a missing vtable usually means the first non-inline virtual member function has no definition