Arhadthedev Asked:2020-03-12 15:54:48 +0000 UTC2020-03-12 15:54:48 +0000 UTC 2020-03-12 15:54:48 +0000 UTC 带有 Q_OBJECT 的类中的“未定义对 `vtable for Counter' 的引用”错误 772 什么时候: 我更改了类结构(添加/删除方法或更改它们的签名); 此类继承自QObject; 里面是用Q_OBJECT的, 当我进一步编译时,我得到一个错误: 未定义对“类名的 vtable”的引用 这是什么原因以及如何解决? c++ 2 个回答 Voted Andrei Lukashevich 2020-04-12T02:59:31Z2020-04-12T02:59:31Z 我在构建设置中设置了复选框以在每个构建上运行 qmake Best Answer Arhadthedev 2020-03-12T15:54:48Z2020-03-12T15:54:48Z 事实是项目文件,即: 所有头文件 *.cpp- 底部有一行的文件#include <имя-cpp-файла.moc> 通过所谓的元对象生成器传递,该生成器Q_OBJECT为每个类生成额外的声明和定义,并将它们放在一个单独的*.cpp文件中。由于多种原因,该类的虚函数表也最终出现在该文件中。 但是,在对源文件进行更改后,这些辅助文件并不总是在构建时更新。因此,每次类更改后,都需要清理程序集目录或将其删除。
我在构建设置中设置了复选框以在每个构建上运行 qmake
事实是项目文件,即:
*.cpp- 底部有一行的文件#include <имя-cpp-файла.moc>通过所谓的元对象生成器传递,该生成器
Q_OBJECT为每个类生成额外的声明和定义,并将它们放在一个单独的*.cpp文件中。由于多种原因,该类的虚函数表也最终出现在该文件中。但是,在对源文件进行更改后,这些辅助文件并不总是在构建时更新。因此,每次类更改后,都需要清理程序集目录或将其删除。