在创建完程序后,点击构建,显示编译错误。
错误问题如下:
error: undefined reference to `vtable
在编译输出
中查看显示如下:
error:undefined reference to `vtable for custom'
这个错误通常是因为 C++ 的虚函数表(vtable)没有正确构建导致的。可能是以下几个原因造成的:
将以上原因逐步分析,通过仔细检查,发现是类定义中使用了 Q_OBJECT
宏,但是忘记运行 qmake
,直接构建造成的。
qmake
是Qt的构建工具,它可以根据项目文件生成Makefile
或其他构建文件。
而moc
是Qt的元对象编译器,它处理带有Q_OBJECT
宏的头文件,生成moc_xxx.h
文件。
在Qt项目中,通常会使用qmake
来生成构建文件,而moc
则会自动包含在构建过程中。
因此,qmake
和moc
是相互关联的,它们共同构成了Qt
项目的构建过程。
解决方案:
qmake
构建
或者重新构建