Qt 项目对 vtable 的未定义引用:解决问题
使用 Code::Blocks 和 mingw 编译器编译 Qt 项目时,可能会出现“未定义对 vtable 的引用”错误。此错误是由于虚拟方法表 (vtable) 的链接信息缺失或不完整而导致的。
要解决此问题,需要确保在编译过程中正确生成 vtable。在提供的示例中,问题与 AddressBook 类有关。 AddressBook.h 中的类定义声明了 Q_OBJECT 宏,该宏负责生成 vtable。但是,AddressBook.cpp 源文件不包含#include
要解决此问题,请在 AddressBook.cpp 的开头添加以下行:
<code class="cpp">#include <QObject></code>
这将包括必要的header 并允许编译器正确生成 vtable。然后错误应该会得到解决。
对于 Qt Creator 用户,可以通过以下步骤触发重建来解决问题:
这将强制生成 Makefile 并重新编译项目,确保正确生成 vtable。
以上是如何解决 Qt 项目中的“未定义的 vtable 引用”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!