【问题标题】:error: undefined reference to `vtable for class' [duplicate]错误:未定义对“类vtable”的引用[重复]
【发布时间】:2016-07-19 04:34:45
【问题描述】:

我在以下代码中有错误。我尝试使用此处提供的许多选项来修复它,但无法解决。

这里是.h

#ifndef JUEGO2PRUEBA_H
#define JUEGO2PRUEBA_H
class juego2Prueba: public QGraphicsView
{
Q_OBJECT
public:
    juego2Prueba();
    ~juego2Prueba();
private slots:
    void on_buttonLeft_clicked();
    void on_buttonRight_clicked();
    void on_buttonUp_clicked();
    void on_buttonDown_clicked();

private:
    void mueveMomia();
    void mejorMovMomia(QChar direccion);
    void finalizaJuego();
    bool puedeMoverse(int x, int y,QChar mov);
    void creaTablero();
}

和.cpp

juego2Prueba::juego2Prueba(){
    //CODE
}

void juego2Prueba::on_buttonRight_clicked()
{//CODE}

void juego2Prueba::on_buttonLeft_clicked()
{//CODE}
void juego2Prueba::on_buttonUp_clicked()
{//code}
void juego2Prueba::on_buttonDown_clicked()
{//code}
void juego2Prueba::mueveMomia(){
//code}
void juego2Prueba::mejorMovMomia(QChar direccion){
//CODE}
void juego2Prueba::finalizaJuego(){
    this->hide();
    timerPerdio->stop();}
bool juego2Prueba::puedeMoverse(int x, int y, QChar mov){
//code}
void juego2Prueba::creaTablero(){
//more code}
juego2Prueba::~juego2Prueba(){
}

错误:

C:\Users\Barrionuevo\Desktop\build-MummyAlgoritmos-Desktop_Qt_5_6_0_MinGW_32bit-Debug\debug\juego2prueba.o:-1: In function `ZN12juego2PruebaC2Ev':
C:\Users\Barrionuevo\Desktop\MummyAlgoritmos\juego2prueba.cpp:7: error: undefined reference to `vtable for juego2Prueba'
C:\Users\Barrionuevo\Desktop\MummyAlgoritmos\juego2prueba.cpp:7: error: undefined reference to `vtable for juego2Prueba'

【问题讨论】:

  • 出于好奇,您是否完全清理、重新启动 QtCreator 并完全重建?澄清您尝试过的“这里给出的许多选项”可能有助于消除“去过那里,做过那个”的建议。
  • 你运行 qmake 了吗?如果我没记错的话,需要在添加或删除信号后重新运行。
  • 也许 QGraphicsView 类对链接器不可用
  • 我遇到了同样的问题。我做了@SurvivalMachine 建议的运行qmake。问题已解决。

标签: c++ qt


【解决方案1】:

“未定义对 vtable 的引用”在 qt 中表示

  1. 信号槽机制存在问题。一个信号已经 已发送,但对插槽对象的引用无效。所以试着找 找出哪个信号/插槽关系已损坏,也许你从来没有 将模型分配给视图
  2. 仍然存在旧的编译器生成的 moc 文件。只需删除完整的调试和发布文件夹即可。

【讨论】:

  • 这是一个链接器错误。链接时未建立信号槽连接。
猜你喜欢
  • 2015-09-24
  • 2011-07-27
  • 2011-11-12
  • 2011-02-03
  • 2014-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多